Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描
2017-12-13 15:17
537 查看
--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)
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)
相关文章推荐
- Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描
- 使用 db_file_multiblock_read_count测试Oracle在不同系统中的IO能力
- 通过案例学调优之--Oracle参数(db_file_multiblock_read_count)
- db_file_multiblock_read_count and Oracle IO size
- 通过案例学调优之--Oracle参数(db_file_multiblock_read_count)
- 常识之外:全表扫描为何产生大量 db file sequential read 单块读?
- oracle优化之count的优化-避免全表扫描
- Oracle 11g全表扫描以Direct Path Read方式执行
- Oracle 11g全表扫描以Direct Path Read方式执行
- oracle之 db file sequential read等待事件优化思想
- 实验讲解DB_FILE_MULTIBLOCK_READ_COUNT对物理读和IO次数的影响
- Oracle 11g全表扫描以Direct Path Read方式执行
- Oracle 10R2 研究--db_file_multiblock_read_count对成本的影响
- 【转自Oracle ACE-盖国强】Oracle 11g全表扫描以Direct Path Read方式执行
- oracle之 db file sequential read等待事件优化思想
- Oracle 11g全表扫描以Direct Path Read方式执行
- Oracle db_file_mulitblock_read_count参数
- Oracle 11g全表扫描以Direct Path Read方式执行
- Oracle IO问题解析(八)—— db file parallel read
- oracle DB_FILE_MULTIBLOCK_READ_COUNT