ORACLE绑定变量BINDPEEKING(三)

2014-11-24 17:04:17 · 作者: · 浏览: 1
| Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 136 (100)| | | 1 | SORT AGGREGATE | | 1 | 4 | | | |* 2 | INDEX FAST FULL SCAN| ACS_TEST_TAB_RECORD_TYPE_I | 48031 | 187K| 136 (1)| 00:00:02 | ---------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("RECORD_TYPE"=:V) 已选择19行。 SQL> select count(*) from acs_test_tab where record_type = 1; COUNT(*) ---------- 1 SQL> select * from table(dbms_xplan.display_cursor); PLAN_TABLE_OUTPUT ---------------------------------------------------------------------------------------------------- SQL_ID 1pxm87f6yd0bp, child number 0 ------------------------------------- select count(*) from acs_test_tab where record_type = 1 Plan hash value: 2956728990 ------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | 3 (100)| | | 1 | SORT AGGREGATE | | 1 | 4 | | | |* 2 | INDEX RANGE SCAN| ACS_TEST_TAB_RECORD_TYPE_I | 1 | 4 | 3 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("RECORD_TYPE"=1) 已选择19行。
对于变量v的取值为1的执行计划和采用常量1的执行计划性能差距还是比较大的。

总结:oracle在9i后引入变量窥测技术,该技术对于数据分布均匀的数据是非常合适的,但是对于分布倾斜的数据或者在OLAP系统中是不建议使用的。