ITPub博客

首页 > 数据库 > Oracle > 【TUNE_ORACLE】列出必须创建直方图的列SQL参考

【TUNE_ORACLE】列出必须创建直方图的列SQL参考

原创 Oracle 作者:Attack_on_Jager 时间:2021-08-06 10:50:17 3 删除 编辑

实验环境

搭建平台:VMware Workstation

OS:RHEL 6.10

Grid&DB:Oracle 11.2.0.4


SQL参考

--******该脚本依赖统计信息!!必须先收集统计信息!!******

注:

统计收集方法详见:  http://blog.itpub.net/69992972/viewspace-2784605/


--1. 没有收集过直方图,且列出现在where条件中,列的选择性小于1%

select a.owner,

       a.table_name,

       a.column_name,

       b.num_rows,

       a.num_distinct,

       trunc(num_distinct / num_rows * 100, 2) selectivity,

       'Need Gather Histogram' notice

  from dba_tab_col_statistics a, dba_tables b

 where a.owner = 'TEST'

   and a.table_name = 'TAB'

   and a.owner = b.owner

   and a.table_name = b.table_name

   and num_distinct / num_rows < 0.01  --选择性小于1%

   and (a.owner, a.table_name, a.column_name) in

       (select r.name owner, o.name table_name, c.name column_name

          from sys.col_usage$ u, sys.obj$ o, sys.col$ c, sys.user$ r

         where o.obj# = u.obj#

           and c.obj# = u.obj#

           and c.col# = u.intcol#

           and r.name = 'TEST'

           and o.name = 'TAB')

   and a.histogram = 'NONE';


--2. 列出现在where条件中,列的选择性小于5%,总行数大于5W

select a.owner,

       a.table_name,

       a.column_name,

       b.num_rows,

       a.num_distinct,

       trunc(num_distinct / num_rows * 100, 2) selectivity,

       'Need Gather Histogram' notice

  from dba_tab_col_statistics a, dba_tables b

 where a.owner = 'TEST'

   and a.table_name = 'TAB'

   and a.owner = b.owner

   and a.table_name = b.table_name

   and num_distinct / num_rows < 0.05  --选择性小于5%

   and num_rows > 50000  --总行数大于5万行

   and (a.owner, a.table_name, a.column_name) in

       (select r.name owner, o.name table_name, c.name column_name

          from sys.col_usage$ u, sys.obj$ o, sys.col$ c, sys.user$ r

         where o.obj# = u.obj#

           and c.obj# = u.obj#

           and c.col# = u.intcol#

           and r.name = 'TEST'

           and o.name = 'TAB');


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69992972/viewspace-2785583/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    102
  • 访问量
    260212