湖北佛 发表于 2013-9-8 16:42:16

db_block_checking与db_block_checksum

sys@OMREP> show parameter db_block_check


NAME                                 TYPE      VALUE
------------------------------------ ----------- ------------------------------
db_block_checking                  string      FALSE
db_block_checksum                  string      TYPICAL

sys@OMREP> create table test (col int) tablespace users;

sys@OMREP> set timing on

sys@OMREP> alter system set db_block_checksum=FALSE;

sys@OMREP> !cat scott.sql
begin
for i in 1..&1 loop
      insert into test values(i);
end loop;
end;
/

sys@OMREP> @scott 100000
old   2: for i in 1..&1 loop
new   2: for i in 1..100000 loop

PL/SQL procedure successfully completed.

Elapsed: 00:00:03.83
sys@OMREP> commit;

Commit complete.

sys@OMREP> alter system set db_block_checking=TRUE;

System altered.

sys@OMREP> alter system set db_block_checksum=TRUE;

System altered.

sys@OMREP> @scott 100000
old   2: for i in 1..&1 loop
new   2: for i in 1..100000 loop

PL/SQL procedure successfully completed.

Elapsed: 00:00:14.69
sys@OMREP> commit;

Commit complete.

db_block_checking 是逻辑上判断,还判断内存内数据块
db_block_checksum 是物理上判断,
两个参数对system表空间不起作用,且消耗资源,和redo latch竞争,

system表空间用一下参数:
sys@OMREP> @ implicit
Enter value for name: _db_always_check
NAME                           VALUE    DESCRIB
------------------------------ -------- ----------------------------------------------------------------------
_db_always_check_system_ts   TRUE   Always perform block check and checksum for System tablespace

伙夫和甲鱼 发表于 2016-2-3 23:35:08

?????
页: [1]
查看完整版本: db_block_checking与db_block_checksum