查看搜集统计信息的estimate_percent
2014-07-20 12:15
267 查看
estimate_percent:采样行的百分比,取值范围[0.000001,100],null为全部分析,不采样. 常量:DBMS_STATS.AUTO_SAMPLE_SIZE是默认值,由oracle决定最佳取采样值. 自动估计要采样的一个segment的最佳百分比: DBA_TABLES: SAMPLE_SIZE NUMBER Sample size used in analyzing this table SQL> select owner, table_name, tablespace_name, sample_size 2 from all_tables 3 where table_name = 'TEST' 4 and owner = 'TEST'; OWNER TABLE_NAME TABLESPACE_NAME SAMPLE_SIZE ---------- -------------------- ------------------------------ ----------- TEST TEST TEST 72605 BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'TEST', tabname => 'TEST', estimate_percent => 100, method_opt => 'for all columns size repeat', no_invalidate => FALSE, degree => 8, cascade => TRUE); END; 查看采样率: SQL> SELECT owner, 2 table_name, 3 num_rows, 4 sample_size, 5 trunc(sample_size / num_rows * 100) ectimate_percent 6 FROM DBA_TAB_STATISTICS 7 where table_name = 'TEST' 8 and owner='TEST'; OWNER TABLE_NAME NUM_ROWS SAMPLE_SIZE ECTIMATE_PERCENT ------------------------------ ------------------------------ ---------- ----------- ---------------- TEST TEST 72605 72605 100 改为20呢? SQL> SELECT owner, 2 table_name, 3 num_rows, 4 sample_size, 5 trunc(sample_size / num_rows * 100) ectimate_percent 6 FROM DBA_TAB_STATISTICS 7 where table_name = 'TEST' 8 and owner='TEST'; OWNER TABLE_NAME NUM_ROWS SAMPLE_SIZE ECTIMATE_PERCENT ------------------------------ ------------------------------ ---------- ----------- ---------------- TEST TEST 71720 14344 20 改为自动呢? BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'TEST', tabname => 'TEST', estimate_percent => dbms_stats.auto_sample_size, method_opt => 'for all columns size repeat', no_invalidate => FALSE, degree => 8, cascade => TRUE); END; SQL> SELECT owner, 2 table_name, 3 num_rows, 4 sample_size, 5 trunc(sample_size / num_rows * 100) ectimate_percent 6 FROM DBA_TAB_STATISTICS 7 where table_name = 'TEST' 8 and owner='TEST'; OWNER TABLE_NAME NUM_ROWS SAMPLE_SIZE ECTIMATE_PERCENT ------------------------------ ------------------------------ ---------- ----------- ---------------- TEST TEST 72605 72605 100 把表搞大呢? SQL> select segment_name,bytes/1024/1024/1024 from dba_segments where segment_name='TEST' and owner='TEST'; SEGMENT_NAME BYTES/1024/1024/1024 --------------------------------------------------------------------------------- -------------------- TEST 1.89355469 还是100% SQL> set linesize 200 SQL> SELECT owner, 2 table_name, 3 num_rows, 4 sample_size, 5 trunc(sample_size / num_rows * 100) ectimate_percent 6 FROM DBA_TAB_STATISTICS 7 where table_name='TEST' 8 and 9 owner='TEST'; OWNER TABLE_NAME NUM_ROWS SAMPLE_SIZE ECTIMATE_PERCENT ------------------------------ ------------------------------ ---------- ----------- ---------------- TEST TEST 9293440 9293440 100 回单位在研究
相关文章推荐
- 使用dbms_stat采集统计信息时estimate_percent和cascade的默认值
- 查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程
- 对Guava Cache的封装和使用(包括一个管理页面实现了查看统计信息、情况、查看记录等)
- 查看统计信息脚本
- oracle 查看列统计信息中 low_value
- 查看系统的I/O使用iostat命令而使用iotop可以根据I/O统计信息排序,追踪到具体的进程
- oracle11g查看自动收集统计信息是否开启
- Oracle查看表中每个字段的统计信息脚本
- 对Guava Cache的封装和使用(包括一个管理页面实现了查看统计信息、情况、查看记录等)
- 使用sp_monitor 查看SQL Server统计信息
- Oracle 查看收集统计信息
- DBCC SHOW_STATISTICS 查看统计信息
- 11g 关于自动搜集统计信息
- 查看统计信息_脚本
- 删除重复值【根据两个字段判断】(只保留一个)&查看执行计划&统计信息
- Oracle 查看 session 当前统计信息 脚本 说明
- 通过 JVM 查看关于 Apache Geronimo 的统计信息
- 查看udp 统计信息
- 解决oracle 11g安装导致数据库无法自动搜集统计信息
- 查看Oracle中表的统计信息