基础知识之数据分析与动态采样

SQL> show user

USER 为 "YWBZ"

--创建测试用表T

 

SQL> create table t as select *  from dba_objects;

 

表已创建。

--仅打印执行计划

SQL> set autotrace traceonly explain

--查看动态采样时的执行计划

SQL> select object_id from t whereobject_id<1000;

 

执行计划

----------------------------------------------------------

Plan hash value: 1601196873

 

--------------------------------------------------------------------------

| Id | Operation         | Name |Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------

|   0| SELECT STATEMENT  |      |   12|   156 |   292  (1)| 00:00:04 |

|*  1|  TABLE ACCESS FULL| T    |    12|   156 |   292  (1)| 00:00:04 |

--------------------------------------------------------------------------

 

Predicate Information (identified byoperation id):

---------------------------------------------------

 

   1 -filter("OBJECT_ID"<1000)

 

Note

-----

   -dynamic sampling used for this statement (level=2)—默认动态采样级别2

--收集统计信息

SQL> execdbms_stats.gather_table_stats('YWBZ','T');

 

PL/SQL 过程已成功完成。

--再次查看执行计划

SQL> select object_id from t whereobject_id<1000;

 

执行计划

----------------------------------------------------------

Plan hash value: 1601196873

 

--------------------------------------------------------------------------

| Id | Operation         | Name |Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------

|   0| SELECT STATEMENT  |      |  876|  4380 |   292  (1)| 00:00:04 |

|*  1|  TABLE ACCESS FULL| T    |   876 |  4380 |  292   (1)| 00:00:04 |

--------------------------------------------------------------------------

 

Predicate Information (identified byoperation id):

---------------------------------------------------

 

   1- filter("OBJECT_ID"<1000)

--实际记录数

SQL> select count(*) from t where object_id<1000;

 

 COUNT(*)

----------

      942
综上所示:表分析后执行计划比动态采样更准确



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值