外键缺索引检查脚本
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,--以ZLHIS用户执行Select Child_Table, Foreign_Key,Cname1 || Nvl2(Cname2, ',' || Cname2, Null) || Nvl2(Cnam
千家信息网最后更新 2025年01月31日外键缺索引检查脚本
--以ZLHIS用户执行
Select Child_Table, Foreign_Key,
Cname1 || Nvl2(Cname2, ',' || Cname2, Null) || Nvl2(Cname3, ',' || Cname3, Null) ||
Nvl2(Cname4, ',' || Cname4, Null) || Nvl2(Cname5, ',' || Cname5, Null) || Nvl2(Cname6, ',' || Cname6, Null) ||
Nvl2(Cname7, ',' || Cname7, Null) || Nvl2(Cname8, ',' || Cname8, Null) Columns, Main_Table, Primary_Key,
Decode(p.Table_Name, Null, 0, 1) Key_Rows
From (Select Col_Cnt, Main_Table, Primary_Key, Child_Table, Foreign_Key,
Cname1 || Nvl2(Cname2, ',' || Cname2, Null) || Nvl2(Cname3, ',' || Cname3, Null) ||
Nvl2(Cname4, ',' || Cname4, Null) || Nvl2(Cname5, ',' || Cname5, Null) || Nvl2(Cname6, ',' || Cname6, Null) ||
Nvl2(Cname7, ',' || Cname7, Null) || Nvl2(Cname8, ',' || Cname8, Null) As Columns, Cname1, Cname2, Cname3,
Cname4, Cname5, Cname6, Cname7, Cname8
From (Select c.Table_Name As Main_Table, b.r_Constraint_Name As Primary_Key, b.Table_Name As Child_Table,
b.Constraint_Name As Foreign_Key, Max(Decode(Position, 1, Column_Name, Null)) Cname1,
Max(Decode(Position, 2, Column_Name, Null)) Cname2, Max(Decode(Position, 3, Column_Name, Null)) Cname3,
Max(Decode(Position, 4, Column_Name, Null)) Cname4, Max(Decode(Position, 5, Column_Name, Null)) Cname5,
Max(Decode(Position, 6, Column_Name, Null)) Cname6, Max(Decode(Position, 7, Column_Name, Null)) Cname7,
Max(Decode(Position, 8, Column_Name, Null)) Cname8, Count(*) Col_Cnt
From User_Cons_Columns A, User_Constraints B, User_Constraints C
Where a.Constraint_Name = b.Constraint_Name And b.Status = 'ENABLED' And b.Constraint_Type = 'R' And
b.r_Constraint_Name <> '部门表_PK' And b.r_Constraint_Name = c.Constraint_Name And
c.Table_Name Not In (Select 表名 From zlBaseCode)
Group By c.Table_Name, b.Table_Name, b.Constraint_Name, b.r_Constraint_Name)) Cons, User_Tab_Statistics S,
(Select Table_Name
From User_Tables
Where Table_Name In (Select 表名 From zlBakTables Union All Select 表名 From Zlbigtables) Or Table_Name Like '%病人%') P
Where Cons.Child_Table = s.Table_Name(+) And Cons.Main_Table = p.Table_Name(+) And Not Exists
(Select 1
From (Select Table_Name,
Cname1 || Nvl2(Cname2, ',' || Cname2, Null) || Nvl2(Cname3, ',' || Cname3, Null) ||
Nvl2(Cname4, ',' || Cname4, Null) || Nvl2(Cname5, ',' || Cname5, Null) ||
Nvl2(Cname6, ',' || Cname6, Null) || Nvl2(Cname7, ',' || Cname7, Null) ||
Nvl2(Cname8, ',' || Cname8, Null) As Columns
From (Select i.Table_Name, Max(Decode(Column_Position, 1, Column_Name, Null)) Cname1,
Max(Decode(Column_Position, 2, Column_Name, Null)) Cname2,
Max(Decode(Column_Position, 3, Column_Name, Null)) Cname3,
Max(Decode(Column_Position, 4, Column_Name, Null)) Cname4,
Max(Decode(Column_Position, 5, Column_Name, Null)) Cname5,
Max(Decode(Column_Position, 6, Column_Name, Null)) Cname6,
Max(Decode(Column_Position, 7, Column_Name, Null)) Cname7,
Max(Decode(Column_Position, 8, Column_Name, Null)) Cname8
From User_Ind_Columns I, User_Indexes A, User_Constraints B
Where a.Index_Name = i.Index_Name And a.Status = 'VALID' And i.Table_Name = b.Table_Name And
b.Constraint_Type = 'R' And b.r_Constraint_Name <> '部门表_PK'
Group By i.Table_Name, i.Index_Name)) Inds
Where Instr(',' || Inds.Columns, ',' || Cons.Columns) = 1 And Cons.Child_Table = Inds.Table_Name)
Order By Key_Rows Desc, s.Num_Rows Desc Nulls Last
部门
用户
病人
索引
脚本
检查
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
画网络安全黑板报图片
支付宝服务器怎么搭建
心墙吉他谱软件开发
一台云服务器多个管理员登陆
心衰数据库
neutron 授时服务器
平安 网络安全
贵阳数据库培训哪里有
日照微信公众号软件开发
数据发布到数据库的方法
胶片视频软件开发
湖北销售软件开发多少钱
网络技术td什么意思
ftp服务器管理端口映射
手机p2p软件开发
联想服务器电源管理
服务器可以离线配置吗
国家网络安全法什么部门监督
两台服务器同一站点同步
桂林零距离软件开发有限公司
免费安卓软件开发
学校服务器怎么采购流程
软件开发可以移民美国吗
网络安全融于思政教学设计
博思睿互联网科技
组态王sql数据库录入
紫袍网络技术工作室
如何查找打印机内存数据库
教学中网络安全意识教育
中孚信息软件开发