基础知识之11g新特性用extended statistics 解决列相关性
2013-01-21 09:01
316 查看
SQL> set wrap off --创建测试表,reap列有比较高的重复率 SQL> create table t as select object_id,floor(object_id/10000) reap from dba_obj ects; 表已创建。 SQL> set autotrace traceonly explain --2级动态采样 SQL> select * from t where object_id<10000; 执行计划 ---------------------------------------------------------- Plan hash value: 1601196873 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 8494 | 215K| 41 (3)| 00:00:01 | |* 1 | TABLE ACCESS FULL| T | 8494 | 215K| 41 (3)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"<10000) Note ----- - dynamic sampling used for this statement (level=2) SQL> show parameter dynamic SQL> show parameter dyna --未动态采样 SQL> select /*+dynamic_sampling(t 0)*/* from t where object_id<10000; 执行计划 ---------------------------------------------------------- Plan hash value: 1601196873 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 576 | 14976 | 40 (0)| 00:00:01 | |* 1 | TABLE ACCESS FULL| T | 576 | 14976 | 40 (0)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"<10000) --表级分析 SQL> exec dbms_stats.gather_table_stats('YWBZ','T'); PL/SQL 过程已成功完成。 SQL> select * from t where object_id<10000; 执行计划 ---------------------------------------------------------- Plan hash value: 1601196873 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 8771 | 70168 | 41 (3)| 00:00:01 | |* 1 | TABLE ACCESS FULL| T | 8771 | 70168 | 41 (3)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"<10000) --多谓词导致执行计划信息不准确 SQL> select * from t where object_id<10000 and reap=1; 执行计划 ---------------------------------------------------------- Plan hash value: 1601196873 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 975 | 7800 | 41 (3)| 00:00:01 | |* 1 | TABLE ACCESS FULL| T | 975 | 7800 | 41 (3)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("REAP"=1 AND "OBJECT_ID"<10000) SQL> set autotrace off --实际记录数0 SQL> select count(*) from t where object_id<10000 and reap=1; COUNT(*) ---------- 0 -- extended statistics SQL> exec dbms_stats.gather_table_stats('YWBZ','T',METHOD_OPT=>'FOR ALL COLUMNS SIZE SKEWONLY FOR COLUMNS(OBJECT_ID,REAP) SIZE SKEWONLY'); PL/SQL 过程已成功完成。 --验证列相关性问题解决,统计信息较准确 SQL> select * from t where object_id<10000 and reap=1; 执行计划 ---------------------------------------------------------- Plan hash value: 1601196873 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 195 | 960 | 21 (3)| 00:00:01 | |* 1 | TABLE ACCESS FULL| T | 195 | 960 | 21 (3)| 00:00:01 | -------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"<10000 AND "REAP"=1)
相关文章推荐
- 基础知识备忘——字段(Field),属性(Property),特性(Attribute)
- .NET简谈互操作(三:基础知识之DllImport特性)
- .NET简谈互操作(三:基础知识之DllImport特性)
- Linux基础知识--2.Linux的文件系统和bash的基础特性(1)
- Oracle 11g RAC 基础知识详解
- typescript的基础知识和特性!
- python基础知识(二)python高级特性
- 2017-10-27Linux基础知识(9)bash基础特性及基础命令
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**
- TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(7)-- 流程控制语句
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**
- 【mysql】Linux基础知识:如何解决mysql数据库自动关闭
- java中文乱码解决之道(2):字符编码详解:基础知识 + ASCII + GB**
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(2)-- 变量和常用数据类型
- Android基础知识:android新特性
- Bash Shell脚本编程-基础特性知识