考量参数DB_FILE_MULTIBLOCK_READ_COUNT的脚本

show parameters db_file_multiblock_read_count;--sys用户登录查看当前参数值
set timing on;
set autotrace on explain;
alter session set db_file_multiblock_read_count = 1;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 2;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 4;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 8;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 16;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 32;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 64;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 128;
select /*+ Full(b) */ count(*) from big_table b;
alter session set db_file_multiblock_read_count = 512;
select /*+ Full(b) */ count(*) from big_table b;
 

 

 Cost + ExecTime得到最佳的block_read_count大小,需要是幕为2 à power(2,i)

 

scott@COLM> set timing on;
scott@COLM> set autotrace on explain;
scott@COLM> alter session set db_file_multiblock_read_count = 1;
 
会话已更改。
 
已用时间 : 00: 00: 00.00
scott@COLM> select /*+ Full(b) */ count(*) from big_table b;
 
 COUNT(*)
----------
   1000000
 
已用时间 : 00: 00: 11.01
 
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=8627 Card=1)
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'BIG_TABLE' (Cost=8627 Card=1000000)
 
 
 
scott@COLM> alter session set db_file_multiblock_read_count = 2;
 
会话已更改。
 
已用时间 : 00: 00: 00.00
scott@COLM> select /*+ Full(b) */ count(*) from big_table b;
 
 COUNT(*)
----------
   1000000
 
已用时间 : 00: 00: 10.04
 
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=5468 Card=1)
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'BIG_TABLE' (Cost=5468 Card=1000000)
 
 
 
scott@COLM> alter session set db_file_multiblock_read_count = 4;
 
会话已更改。
 
已用时间 : 00: 00: 00.00
scott@COLM> select /*+ Full(b) */ count(*) from big_table b;
 
 COUNT(*)
----------
   1000000
 
已用时间 : 00: 00: 09.05
 
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=3465 Card=1)
   1    0   SORT (AGGREGATE)
   2    1     TABLE ACCESS (FULL) OF 'BIG_TABLE' (Cost=3465 Card=1000000)
 
 
 
scott@COLM> alter session set db_file_multiblock_read_count = 8;
 
会话已更改。
 
已用时间 : 00: 00: 00.00
scott@COLM> select /*+ Full(b) */ count(*) from big_table b;
 
 COUNT(*)
----------
   1000000
 
已用时间 : 00: 00: 09.00
 
。。。。。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值