zoukankan      html  css  js  c++  java
  • Oracle 查询重复索引列

    SELECT /*+ rule */
    a .table_owner,
    a.table_name,
    a.index_owner,
    a.index_name,
    column_name_list,
    column_name_list_dup,
    dup duplicate_indexes,
    i.uniqueness,
    i.partitioned,
    i.leaf_blocks,
    i.distinct_keys,
    i.num_rows,
    i.clustering_factor
    FROM (SELECT table_owner,
    table_name,
    index_owner,
    index_name,
    column_name_list_dup,
    dup,
    MAX(dup) OVER(PARTITION BY table_owner, table_name, index_name) dup_mx
    FROM (SELECT table_owner,
    table_name,
    index_owner,
    index_name,
    SUBSTR(SYS_CONNECT_BY_PATH(column_name, ','), 2) column_name_list_dup,
    dup
    FROM (SELECT index_owner,
    index_name,
    table_owner,
    table_name,
    column_name,
    COUNT(1) OVER(PARTITION BY index_owner, index_name) cnt,
    ROW_NUMBER() OVER(PARTITION BY index_owner, index_name ORDER BY column_position) AS seq,
    COUNT(1) OVER(PARTITION BY table_owner, table_name, column_name, column_position) AS dup
    FROM sys.dba_ind_columns
    WHERE (index_owner LIKE 'E%' OR
    index_owner LIKE 'TRIAL%' OR
    index_owner = 'TEST')
    AND index_owner NOT IN ('EXFSYS'))
    WHERE dup != 1
    START WITH seq = 1
    CONNECT BY PRIOR seq + 1 = seq
    AND PRIOR index_owner = index_owner
    AND PRIOR index_name = index_name)) a,
    (SELECT table_owner,
    table_name,
    index_owner,
    index_name,
    SUBSTR(SYS_CONNECT_BY_PATH(column_name, ','), 2) column_name_list
    FROM (SELECT index_owner,
    index_name,
    table_owner,
    table_name,
    column_name,
    COUNT(1) OVER(PARTITION BY index_owner, index_name) cnt,
    ROW_NUMBER() OVER(PARTITION BY index_owner, index_name ORDER BY column_position) AS seq
    FROM sys.dba_ind_columns
    WHERE (index_owner LIKE 'E%' OR index_owner LIKE 'TRIAL%' OR
    index_owner = 'TEST')
    AND index_owner NOT IN ('EXFSYS'))
    WHERE seq = cnt
    START WITH seq = 1
    CONNECT BY PRIOR seq + 1 = seq
    AND PRIOR index_owner = index_owner
    AND PRIOR index_name = index_name) b,
    dba_indexes i
    WHERE a.dup = a.dup_mx
    AND a.index_owner = b.index_owner
    AND a.index_name = b.index_name
    AND a.index_owner = i.owner
    AND a.index_name = i.index_name
    ORDER BY a.table_owner, a.table_name, column_name_list_dup;

  • 相关阅读:
    用Eclipse+MyEclipse开发struts的一个经典的实例(转)
    TOMCAT配置虚拟目录
    翻动100万级的数据(自定义的MSSQL分页查询过程)
    MyEclipse Hibernate 快速入门中文版
    微软提供的数据访问组件SqlHelper
    Java内存管理(一、内存分配)
    使用commonlogging与log4j打印日志,发现版本冲突
    Java内存管理(二、Java垃圾回收)
    初探java内存机制_堆和栈
    关于单CPU,多CPU上的原子操作
  • 原文地址:https://www.cnblogs.com/ss-33/p/10782615.html
Copyright © 2011-2022 走看看