易截截图软件、单文件、免安装、纯绿色、仅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表示,如果一台机器上装了 ......

oracle总结

查询:select语句,多表查询,group by 分组,having 对分组后的每一个组进行过滤,order by 排序。(select语句多表查询这个最重要)
DML语句:insert into emp() values(),insert into emp (select * from emp2),
    delete from emp where...
    update emp set sal =.. where ..
rollback;恢复 ......

Oracle Exception

 1) 基本结构
  BEGIN
    ... --语句
  EXCEPTION -- 例外处理
    WHEN ...
    ...
    WHEN OTHERS
      ...
  END;
  2) 常用预定义例外
  EXCEPTION
    WHEN CU ......

Oracle之管理表之一(显示表信息)


 
显示表信息
1,显示特定用户的表
DAT_TABLES 可以显示所有数据库表的详细信息
ALL_TABLES 可以显示用户可以访问的所有表信息
USER_TABLES 可以显示当前用户所有表的信息
SELECT table_name,num_rows,pct_free,blocks,chain_cnt
from dba_tables WHERE owner=’SCOTT’;
Table_name用于标识表名,n ......

开启Oracle的帮助系统

在进行数据库管理的时候,忽然一下记不起命令和语法,特别是给客户做演示,或者是现场实施,有没有办法查手册,没有办法,实在是尴尬,我们使用linux的时候,也是通过大量的命令行命令来进行系统的维护,如此多的命令,难免会对一些命令遗忘,不过linux里的man命令,可以帮我们找到相应命令的大部分的用法描述,根据这个man ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号