查找没有索引的外键

http://asktom.oracle.com/tkyte/unindex/unindex.sql


column columns format a20 word_wrapped

column table_name format a30 word_wrapped

select decode( b.table_name, NULL, '****', 'ok' ) Status, 

           a.table_name, a.columns, b.columns

from 

( select substr(a.table_name,1,30) table_name, 

                 substr(a.constraint_name,1,30) constraint_name, 

             max(decode(position, 1,     substr(column_name,1,30),NULL)) || 

             max(decode(position, 2,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 3,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 4,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 5,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 6,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 7,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 8,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position, 9,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,10,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,11,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,12,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,13,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,14,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,15,', '||substr(column_name,1,30),NULL)) || 

             max(decode(position,16,', '||substr(column_name,1,30),NULL)) columns

    from user_cons_columns a, user_constraints b

   where a.constraint_name = b.constraint_name

     and b.constraint_type = 'R'

   group by substr(a.table_name,1,30), substr(a.constraint_name,1,30) ) a, 

( select substr(table_name,1,30) table_name, substr(index_name,1,30) index_name, 

             max(decode(column_position, 1,     substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 2,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 3,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 4,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 5,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 6,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 7,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 8,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position, 9,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,10,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,11,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,12,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,13,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,14,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,15,', '||substr(column_name,1,30),NULL)) || 

             max(decode(column_position,16,', '||substr(column_name,1,30),NULL)) columns

    from user_ind_columns 

   group by substr(table_name,1,30), substr(index_name,1,30) ) b

where a.table_name = b.table_name (+)

  and b.columns (+) like a.columns || '%'

/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值