sql 语句系列(列举非索引外键)[八百章之第九章]

列举非索引外键

列举出那些外键没有添加索引。

目的:

1.减少锁。

2.外键添加索引,提示了查询性能,因为要与父表做连接查询做笛卡尔积。

下面只要会复制即可,没有会去从新写一遍的。

select fkeys.table_name,fkeys.constraint_name,fkeys.column_name,ind_cols.index_name
from (
select a.object_id,d.column_id,a.name table_name,b.name constraint_name,d.name column_name
from sys.tables a join
sys.foreign_keys b
on (a.name=‘EMP‘
and a.object_id=b.parent_object_id
)
join sys.foreign_key_columns c
on (b.object_id=c.constraint_object_id)
join sys.columns d
on (c.constraint_column_id=d.column_id and a.object_id=d.object_id)
) fkeys
left join(
select a.name index_name,b.object_id,b.column_id
from sys.indexes a,sys.index_columns b
where a.index_id= b.index_id
) ind_cols on (fkeys.object_id=ind_cols.object_id and fkeys.column_id=ind_cols.column_id)
where ind_cols.index_name is null

原文地址:https://www.cnblogs.com/aoximin/p/12578494.html

时间: 2024-11-10 22:06:05

sql 语句系列(列举非索引外键)[八百章之第九章]的相关文章

SQL SERVER 查看SQL语句IO,时间,索引消耗

1.查看SQL语句IO消耗 set statistics io on     select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set statistics io off 2.查看SQL语句时间消耗 set statistics time on      select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set st

MySQL-5-唯一索引-外键的变种

唯一索引 唯一索引 联合唯一索引 外键的变种 博客园 FK不能去重,一个用户只有一个博客园 原文地址:https://www.cnblogs.com/c-x-m/p/9061546.html

SQL语句建表、设置主键、外键、check、default、unique约束

· 什么是数据库? 存放数据的仓库. · 数据库和数据结构有什么区别? 数据结构要解决在内存中操作数据的问题,数据库要解决在硬盘中操作数据的问题.数据结构研究一些抽象数据模型(ADT)和以及定义在该模型上的一些操作,数据库是由表.关系.操作组成. · 什么是主键? 主键用来标识记录的唯一性. · 什么是外键? 外键用来标识表与表之间的联系. · 什么是check约束? check约束限制了输入值的范围. · 什么是default约束? 给某个属性一个默认值. · 什么是unique约束? 限制某

2-16 MySQL字段约束-索引-外键

一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,'HA','123456'); mysql> insert into worker values(1,'LB',null); ERROR 1048 (2

2-13-MySQL字段约束-索引-外键

高版本导出报错问题,是由于高版本对导出文件优化了权限设置, show variables like '%secure%';查看权限是NULL就代表禁止导出 在配置文件my.cnf [mysqld]下加secure_file_priv=指定导出目录 本节所讲内容: 1.  字段修饰符 2.  清空表记录 3.  索引 4.  外键 5.     视图 一:字段修饰符 (约束) 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id

总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show databases' -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-te

SQL反模式学习笔记5 外键约束【不用钥匙的入口】

2014-10-11 14:53:20 目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用外键的原因有一下几点: 1.数据更新有可能和约束冲突: 2.当前的数据库设计如此灵活,以至于不支持引用完整性约束: 3.数据库为外键建立的索引会影响性能: 4.当前使用的数据库不支持外键.比如MySQL的MyISAM存储引擎,或者比SQLite3.6.19早的版本: 5.定义外键的语法并不简单,还需要查阅. 反模式:无视约束,即不使用约束 省略外键约束能使得数据库设计更加简单.灵活,或者

SQL 数据库 子查询、主外键

子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数: 另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表. 主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通

mysql(视图 事务 索引 外键)

视图 视图本质就是对查询的封装 创建视图(定义视图 起名以v_开头) create view v_students as select classes.name as c_name ,students.* from students inner join classes on students.cls_id=classes.id; 查看视图 select * from v_students; 删除视图 drop view v_students; 事务 事务具有ACID特性: 原子性(A,atom