• Oracle删除重复索引


      1 查看有哪些索引含有重复的字段, 从而让索引更加合理化!
      2 SQL> SELECT /*+ rule */ a .table_owner,
      3            a.table_name,
      4            a.index_owner,
      5            a.index_name,
      6            column_name_list,
      7            column_name_list_dup,
      8            dup duplicate_indexes,
      9            i.uniqueness,
     10            i.partitioned,
     11            i.leaf_blocks,
     12            i.distinct_keys,
     13            i.num_rows,
     14            i.clustering_factor
     15     FROM   (SELECT   table_owner,
     16                      table_name,
     17                      index_owner,
     18                      index_name,
     19                      column_name_list_dup,
     20                      dup,
     21                      MAX (dup)
     22                         OVER (PARTITION BY table_owner, table_name, index_name)
     23                         dup_mx
     24               FROM   (    SELECT   table_owner,
     25                                    table_name,
     26                                    index_owner,
     27                                    index_name,
     28                                    SUBSTR (SYS_CONNECT_BY_PATH (column_name, ','),
     29                                            2)
     30                                       column_name_list_dup,
     31                                    dup
     32                             FROM   (SELECT   index_owner,
     33                                              index_name,
     34                                              table_owner,
     35                                              table_name,
     36                                              column_name,
     37                                              COUNT(1)
     38                                                 OVER (
     39                                                    PARTITION BY index_owner,
     40                                                                 index_name
     41                                                 )
     42                                                 cnt,
     43                                              ROW_NUMBER ()
     44                                                 OVER (
     45                                                    PARTITION BY index_owner,
     46                                                                 index_name
     47                                                    ORDER BY column_position
     48                                                 )
     49                                                 AS seq,
     50                                              COUNT(1)
     51                                                 OVER (
     52                                                    PARTITION BY table_owner,
     53                                                                 table_name,
     54                                                                 column_name,
     55                                                                 column_position
     56                                                 )
     57                                                 AS dup
     58                                       FROM   sys.dba_ind_columns
     59                                      WHERE   (   index_owner LIKE 'E%'
     60                                               OR index_owner LIKE 'TRIAL%'
     61                                               OR index_owner = 'SCOTT')
     62                                              AND index_owner NOT IN ('EXFSYS'))
     63                            WHERE   dup != 1
     64                       START WITH   seq = 1
     65                       CONNECT BY       PRIOR seq + 1 = seq
     66                                    AND PRIOR index_owner = index_owner
     67                                    AND PRIOR index_name = index_name)) a,
     68            (    SELECT   table_owner,
     69                          table_name,
     70                          index_owner,
     71                          index_name,
     72                          SUBSTR (SYS_CONNECT_BY_PATH (column_name, ','), 2)
     73                             column_name_list
     74                   FROM   (SELECT   index_owner,
     75                                    index_name,
     76                                    table_owner,
     77                                    table_name,
     78                                    column_name,
     79                                    COUNT (1)
     80                                       OVER (PARTITION BY index_owner, index_name)
     81                                       cnt,
     82                                    ROW_NUMBER ()
     83                                       OVER (PARTITION BY index_owner, index_name
     84                                             ORDER BY column_position)
     85                                       AS seq
     86                             FROM   sys.dba_ind_columns
     87                            WHERE   (   index_owner LIKE 'E%'
     88                                     OR index_owner LIKE 'TRIAL%'
     89                                     OR index_owner = 'SCOTT')
     90                                    AND index_owner NOT IN ('EXFSYS'))
     91                  WHERE   seq = cnt
     92             START WITH   seq = 1
     93             CONNECT BY       PRIOR seq + 1 = seq
     94                          AND PRIOR index_owner = index_owner
     95                          AND PRIOR index_name = index_name) b,
     96            dba_indexes i
     97    WHERE       a.dup = a.dup_mx
     98            AND a.index_owner = b.index_owner
     99            AND a.index_name = b.index_name
    100            AND a.index_owner = i.owner
    101            AND a.index_name = i.index_name
    102 ORDER BY   a.table_owner, a.table_name, column_name_list_dup;
  • 相关阅读:
    json schema相关
    好看的记录片和电影
    java函数局部变量的坑(非常隐藏)
    maven操作
    Js数组的常用的方法概述
    深入理解JS各种this指向问题
    浅谈ES5和ES6继承和区别
    vue
    使用 vue-i18n 切换中英文
    js_数组对象的浅克隆
  • 原文地址:https://www.cnblogs.com/shujuyr/p/13089063.html
Copyright © 2020-2023  润新知