关于分区表测试, 测试表 BPTNHIST_DAY ,按天分区,一共630个分区,大小为20G 。
分区键上无INDEX 测试:
SQL> select count(*) from MPRO2.BPTNHIST_DAY where AC_DT='20100522' ;
COUNT(*)
----------
577349
Elapsed: 00:00:00.52
Execution Plan
----------------------------------------------------------
Plan hash value: 3276195859
--------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 2867 (1)| 00:00:52 | | |
| 1 | SORT AGGREGATE | | 1 | 6 | | | | |
| 2 | PARTITION RANGE SINGLE| | 578K| 3392K| 2867 (1)| 00:00:52 | 387 | 387 |
|* 3 | TABLE ACCESS FULL | BPTNHIST_DAY | 578K| 3392K| 2867 (1)| 00:00:52 | 387 | 387 |
--------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - filter("AC_DT"=20100522)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
5920 consistent gets
1784 physical reads
0 redo size
517 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
WHERE 条件中 有分区键 走分区索引JRNNO
SQL> select count(*) from MPRO2.BPTNHIST_DAY where jrnno=1371263 and AC_DT='20100522' ;
COUNT(*)
----------
1
Elapsed: 00:00:00.00
Execution Plan
----------------------------------------------------------
Plan hash value: 4289208296
--------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 12 | 2 (0)| 00:00:01 | | |
| 1 | SORT AGGREGATE | | 1 | 12 | | | | |
| 2 | PARTITION RANGE SINGLE | | 1 | 12 | 2 (0)| 00:00:01 | 387 | 387 |
|* 3 | TABLE ACCESS BY LOCAL INDEX ROWID| BPTNHIST_DAY | 1 | 12 | 2 (0)| 00:00:01 | 387 | 387 |
|* 4 | INDEX RANGE SCAN | INDX_JRNNO | 1 | | 1 (0)| 00:00:01 | 387 | 387 |
--------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - filter("AC_DT"=20100522)
4 - access("JRNNO"=1371263)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
515 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
WHERE 条件中 无分区键 走分区索引JRNNO
SQL> select count(*) from MPRO2.BPTNHIST_DAY where jrnno=1371283 ;
COUNT(*)
----------
9
Elapsed: 00:00:00.01
Execution Plan
----------------------------------------------------------
Plan hash value: 1123190756
---------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
---------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 611 (0)| 00:00:12 | | |
| 1 | SORT AGGREGATE | | 1 | 6 | | | | |
| 2 | PARTITION RANGE ALL| | 33 | 198 | 611 (0)| 00:00:12 | 1 | 610 |
|* 3 | INDEX RANGE SCAN | INDX_JRNNO | 33 | 198 | 611 (0)| 00:00:12 | 1 | 610 |
---------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("JRNNO"=1371283)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
848 consistent gets
0 physical reads
0 redo size
515 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
WHERE 条件中有分区键 使用JRNNO上的全局索引
SQL> select count(*) from MPRO2.BPTNHIST_DAY where jrnno=1371263 and AC_DT='20100522' ;
COUNT(*)
----------
1
Elapsed: 00:00:00.01
Execution Plan
----------------------------------------------------------
Plan hash value: 2097666864
--------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 12 | 107 (0)| 00:00:02 | | |
| 1 | SORT AGGREGATE | | 1 | 12 | | | | |
|* 2 | TABLE ACCESS BY GLOBAL INDEX ROWID| BPTNHIST_DAY | 1 | 12 | 107 (0)| 00:00:02 | 387 | 387 |
|* 3 | INDEX RANGE SCAN | INDX_JRNNO | 1 | | 3 (0)| 00:00:01 | | |
--------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("AC_DT"=20100522)
3 - access("JRNNO"=1371263)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
515 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
使用JRNNO上的全局索引
SQL> select count(*) from MPRO2.BPTNHIST_DAY where jrnno=1371283 ;
COUNT(*)
----------
9
Elapsed: 00:00:00.01
Execution Plan
----------------------------------------------------------
Plan hash value: 3217367056
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 6 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 6 | | |
|* 2 | INDEX RANGE SCAN| INDX_JRNNO | 33 | 198 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("JRNNO"=1371283)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
515 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/308563/viewspace-664311/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/308563/viewspace-664311/