Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描

--Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描

SYS@PROD1> select ksppinm, indx from x$ksppi where ksppinm like '%db_file_optimi%';

KSPPINM 			     INDX
------------------------------ ----------
_db_file_optimizer_read_count	     1074

SYS@PROD1> select ksppstdvl from x$ksppcv where indx=1074;

KSPPSTDVL
----------------------------------------------------------------------------------------------------
8

--实验表
SYS@PROD1> select count(*) from tt;

  COUNT(*)
----------
    480000
	
SYS@PROD1> select count(*) from tt;  --默认值为8时的开销

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |  1546   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|  1546   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

SYS@PROD1> alter session set "_db_file_optimizer_read_count"=16; 

Session altered.

SYS@PROD1> select count(*) from tt;  --修改为16时,开销降低19%

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |  1250   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|  1250   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

SYS@PROD1> alter session set "_db_file_optimizer_read_count"=32;

Session altered.

SYS@PROD1> select count(*) from tt;  --修改为32时,开销降低11%

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |  1103   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|  1103   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

SYS@PROD1> alter session set "_db_file_optimizer_read_count"=64;

Session altered.

SYS@PROD1> select count(*) from tt;  --修改为64时,开销降低7%

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |  1029   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|  1029   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

SYS@PROD1> alter session set "_db_file_optimizer_read_count"=128;

Session altered.

SYS@PROD1> select count(*) from tt;  --修改为128时,开销降低3.5%

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |   992   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|   992   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

SYS@PROD1> alter session set "_db_file_optimizer_read_count"=256;

Session altered.

SYS@PROD1> select count(*) from tt;  --修改为256时,开销不再降低

Execution Plan
----------------------------------------------------------
Plan hash value: 3133740314

-------------------------------------------------------------------
| Id  | Operation	   | Name | Rows  | Cost (%CPU)| Time	  |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |	  |	1 |   992   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	       |	  |
|   2 |   TABLE ACCESS FULL| TT   |   587K|   992   (1)| 00:00:01 |
-------------------------------------------------------------------

Note
-----
   - dynamic sampling used for this statement (level=2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值