易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle 块清除(block cleanout)


今天在网上看到一篇关于BLOCK CLEANOUT不错的文章,虽然里面的有个别地方比较难懂,可还是先转过来,等以后懂得多一些了自己也做做实验操作操作。
=========================================================
Oracle (block cleanout)
Cleanout有2种,一种是fast commit cleanout,另一种是delayed block cleanout.
 
Oracle的每个事务(transaction)修改不超过10%buffer cache的数据块时,oracle做的是fast commit cleanout。如果一个事务(transaction)修改的块超过10% buffer cache,那么超过的块就执行delayed block cleanout,还有一种情况,就是当事务还未commit时,修改的数据块已经写入硬盘,当发生commit时oracle并不会把block重新读入做cleanout,而是把cleanout留到下一次对此块的访问是完成。
 
下面构造环境来测试
每个数据块一条数据(数据块为8k)
 
 
SQL> create table test (id int,
name char(600))
pctfree 99 pctused 1;

表已创建。

SQL> insert into test select object_id,object_name from all_objects where rownum< 1000;
已创建999行。
SQL> show parameters db_cache_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------
db_cache_size big integer 32M
SQL> l
1 select rownum, dbms_rowid.rowid_relative_fno(rowid) "file#",dbms_rowid.rowid_block_number(rowid) "block#" from test
ROWNUM file# block#
---------- ---------- ----------
1 1 60762
….
999 1 62064

--Delay clean out 的表象

SQL> update test set id=id + 1;
已更新999行。
SQL> commit;
提交完成。
SQL> set autot on
SQL> select count(*) from test;
COUNT(*)
----------
999
--执行计划
----------------------------------------------------------
Plan hash value: 1950795681
-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0


相关文档:

Oracle 数据库的各类名称概念

数据库名、实例名、数据库域名、全局数据库名、服务名,
这是几个令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。我们现在就来把它们弄个明白。
一、数据库名
什么是数据库名?
数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了 ......

Windows 下 Oracle数据库自动备份批处理脚本

@echo off
REM ###########################################################
REM # Windows Server 2003下Oracle数据库自动备份批处理脚本
REM ###########################################################
REM 取当前系统时间,可能因操作系统不同而取值不一样
set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
se ......

Oracle RAC日常基本维护命令

列出配置的所有数据库
[root@node1 ~]# srvctl config database
NOVADB
所有实例和服务的状态
[root@node1 ~]# srvctl status database -d NOVADB
Instance NOVADB1 is running on node node1
Instance NOVADB2 is running on node node2
单个实例的状态
[root@node1 ~]# srvctl status instance -d NOVADB -i NOVA ......

Oracle之管理角色


 
预定义角色是oracle提供的角色,这些角色是在建立数据库,安装数据字典视图何PL/SQL包时建立的,并且每种角色都用于执行一些特定管理任务.
1,CONNECT角色
CONNECT角色时在建立数据库时,oracle执行脚本SQL.BSQ自动建立的角色,该角色具有应用开发人员所需的多数权限.CONNECT角色具有的所有系统权限如下:
ALTER SESS ......

Oracle 10GR2 DataGuard 实例

server A: 10.85.10.44  SID=orcl ­
target server B: 10.85.10.43 ­
oracle version:10.2.0.1 ­
OS platform : windows XP ­
­
Data Guard默认是maximize performance, 可以用以下语句来进行模式间的切换。 ­
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AV ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号