外键缺索引检查脚本
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,--以ZLHIS用户执行Select Child_Table, Foreign_Key,Cname1 || Nvl2(Cname2, ',' || Cname2, Null) || Nvl2(Cnam
千家信息网最后更新 2025年12月04日外键缺索引检查脚本
--以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安全错误
数据库的锁怎样保障安全
根据数据库生成实体类
数据库碎片分析
数据库企业约束
iphone数据库美国
服务器漏洞修复如何备份数据
广西网站建设服务器
ci 软件开发
数据库job定时任务
饥荒已经开的存档能搭建服务器吗
江苏大型网络技术价格查询
游戏服务器 阿里云
武汉3u服务器报价
计算机网络技术不包括什么
网络安全主题教育的基本内容
国内云服务器招商网络平台
国外金融数据库的优点
英语学软件开发好吗
品牌云服务器代理加盟平台
软件开发成本大不大
服务器主板是什么
官兵手机网络安全宣传周活动
署光服务器远程管理
数据库节点数怎么核算
iginx服务器代码的策略模式
一体化办公网络安全保密
软件开发scala
教师职业就业数据库
软件开发公司封面设计
搜道网络技术
pc软件开发做什么的