ITPub博客

首页 > 数据库 > Oracle > 【TUNE_ORACLE】列出可以创建组合索引的SQL(回表再过滤选择性高的列)的SQL参考

【TUNE_ORACLE】列出可以创建组合索引的SQL(回表再过滤选择性高的列)的SQL参考

原创 Oracle 作者:Attack_on_Jager 时间:2021-08-10 14:19:21 0 删除 编辑

实验环境

搭建平台:VMware Workstation

OS:RHEL 6.10

Grid&DB:Oracle 11.2.0.4


SQL参考

select a.sql_id,

       a.sql_text,

       f.table_name,

       c.size_mb,

       e.column_name,

       round(e.num_distinct / f.num_rows * 100, 2) selectivity

  from v$sql a,

       v$sql_plan b,

       (select owner, segment_name, sum(bytes / 1024 / 1024) size_mb

          from dba_segments

         group by owner, segment_name) c,

       dba_tab_col_statistics e,

       dba_tables f

 where a.sql_id = b.sql_id

   and a.child_number = b.child_number

   and b.object_owner = c.owner

   and b.object_name = c.segment_name

   and e.owner = f.owner

   and e.table_name = f.table_name

   and b.object_owner = f.owner

   and b.object_name = f.table_name

   and instr(b.filter_predicates, e.column_name) > 0

   and (e.num_distinct / f.num_rows) > 0.1  --比例要超过10%才算选择性高

   and c.owner = 'TEST'

   and b.operation = 'TABLE ACCESS'

   and b.options = 'BY INDEX ROWID'  -- TABLE ACCESS  BY INDEX ROWID

   and e.owner = 'TEST'

 order by 4 desc;



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

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

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    483081