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;
Oracle 查询重复索引列的更多相关文章
- oracle查询不走索引的一些情况(索引失效)
Oracle建立索引的目的是为了避免全表扫描,提高查询的效率. 但是有些情况下发现即使建立了索引,但是写出来的查询还是很慢,然后会发现是索引失效导致的,所以需要了解一下那些情况会导致索引失效,即查询不 ...
- oracle查询重复数据方法
SQL重复记录查询方法 2008年08月14日 星期四 21:01 SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peop ...
- ORACLE 查询不走索引的原因分析,解决办法通过强制索引或动态执行SQL语句提高查询速度
(一)索引失效的原因分析: <>或者单独的>,<,(有时会用到,有时不会) 有时间范围查询:oracle 时间条件值范围越大就不走索引 like "%_" ...
- oracle避免改变索引列的类型
当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换. 假设 EMPNO是一个数值类型的索引列. SELECT … FROM EMP WHERE EMPNO = ‘123’ 实际上,经 ...
- oracle避免在索引列上使用IS NULL和IS NOT NULL
避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 .对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空 ...
- oracle避免在索引列上使用NOT
通常, 我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的 影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. 举例: 低效: (这里,不使用索引) S ...
- oracle避免在索引列上使用计算
WHERE子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描. 举例: 低效: SELECT … FROM DEPT WHERE SAL * 12 > 25000; 高效: SE ...
- oracle查询重复的数据
在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件.块.行上.在重复的记录中,可能所有列的内容都相同,但rowi ...
- oracle 查询重复数据并且删除, 只保留一条数据
数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据 一:重复数据根据单个字段进行判断 1.首先,查询表中多余的数据,由关键字段(name)来查询. sele ...
随机推荐
- PE知识复习之PE的节表
PE知识复习之PE的节表 一丶节表信息,PE两种状态.以及重要两个成员解析. 确定节表位置: DOS + NT头下面就是节表. 确定节表数量: 节表数量在文件头中存放着.可以准确知道节表有多少个. 节 ...
- Spring Boot 2.x (一):HelloWorld
简介 本系列基于Spring Boot 2.1.0 的官方文档,除去了文档中一些冗余的东西,加上了一些自己的理解,意图是在于帮助更多初识Spring Boot的人来进行一次探险. 本系列建议具有Jav ...
- Linux常用命令详解(week1_day1_3)--技术流ken
本节内容 pidofpstopipuptimewgetcurltrddtargrepfind 命令详解 1.pidof 获取正在运行程序的PID 实例1: [root@ken ~]# pidof ss ...
- Centos7-yum部署配置LNMP+php-fgm,一台机器上部署
一.简介 1.了解nginx特性 请参考,https://www.cnblogs.com/zhangxingeng/p/10150955.html 2.LNMP:linux+nginx+mysql+p ...
- 《CLR via C#》读书笔记(一)——CLR的执行模式
前言 万事开头难,很早之前就想写博客记录些东西,迟迟未行动,甚是遗憾.原因诸多,大体上无非都是懒.没意志力等等.这次从自己的读书笔记开始,兴许能够有所改变. 一.CLR概念 CLR(Common La ...
- linux查看和修改PATH环境变量的方法
查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PA ...
- 【转】C#中判断网址是否有效
本文内容来源网络,如涉及版权,请联系作者删除. 思路:C#语言判断网址是否正确,思路是向网址发起连接,根据状态判断网址是否有效. 代码如下: //仅检测链接头,不会获取链接的结果.所以速度很快,超时的 ...
- C#杂记-简化的初始化
对象说明 public class Person { public int Age{get; set;} public string Name{get; set;} List<Person> ...
- (2)Maven快速入门_2maven在Eclipse中的设置
1.1 eclipse Maven 设置 [Eclipse Mars之后的版本已经集成了Maven] 1.1.1 eclipse 设置 Maven 下载jar的源码 和 doc 文件 勾 ...
- 【20190405】JavaScript-正则式匹配与替换结果解析
在正则式的应用中有三个函数使用得最多:exec().test()与字符串的replace(reg, options).其中test()最简单,只要字符串与正则式可以匹配,就返回true,否则返回fal ...