SqlServer索引、优化、约束、连接
- 索引的创建和删除
create index in_name on person(name) --创建索引 drop index person.in_name --删除索引 create index in_name_age on person(name,age) --创建两个字段索引
索引分为聚集索引和非聚集索引,
索引与表物理顺序一致,就是聚集索引,聚集索引只能有一个
索引与表物理地址不一致,就是非聚集索引 ,非聚集索引可以有多个
- 优化机巧:
- 对常用字段创建索引
- where子句尽量写在后面,如果有子查询先写子查询
- 使用参数化查询方式进行编程
- 需要查几个字段就写几个字段,不要全部用*
- 尽量少些sql,能简单实现的不要过多sql才实现
- 表连接效率高于exists和in关键字使用
- 一旦索引字段进行了计算,则会全表扫描,影响效率
- union all 效率比union高
非空约束: NOT NULL
- 单字段唯一约束:
create table studentInfo(id int identity(1,1),name varchar(20) unique) insert into studentInfo values('kit')
insert into studentInfo values('kit') --插入第二条时报错,提示定义唯一约束,不能插入重复多字段复合约束
create table TeacherInfo(id int identity(1,1),Fnum int,FDep int,constraint FND unique(fnum,fdep)) -- FND为复合约束名
表已存在,新增约束
alter table studentinfo add constraint s1 unique(name)
删除约束
alter table teacherinfo drop constraint FND --删除复合约束
检查约束check
alter table Person add check(age > 2) --新增检查约束标识年龄必须大于2
主键约束,主键后跟 primary key
alter table studentinfo add constraint py primary key(id) --新增主键约束
alter table studentinfo drop constraint py --删除约束外键约束
create table Person(ID int identity(1,1),Name varchar(20),Age int,DepID nvarchar(20),primary key(id),foreign key(DepID) references DepMent(id))
表连接
--表连接 select * from Person
select * from Depment
--内连接,默认只写一个join就是内连接
select Person.name,Depment.depname from Person
inner join Depment
on Depment.id = Person.DepID
where DepID = '' --交叉连接:涉及到的表的所有记录都显示出来
select p.Name,d.depname from Person p
cross join Depment d --外部连接 --左外连接:不管是否匹配成功,都会返回左边全部记录
select p.Name,d.depname from Person p
left outer join Depment d
on p.depid = d.id --右外连接:返回右表全部数据,和左表匹配数据
select p.Name,d.depname from Person p
right outer join Depment d
on d.id = p.DepID --全部外连接
select p.Name,d.depname from Person p
full outer join Depment d
on d.id = p.DepID
SqlServer索引、优化、约束、连接的更多相关文章
- sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
原文:sqlserver 索引优化 CPU占用过高 执行分析 服务器检查 1. 管理公司一台服务器,上面放的东西挺多的.有一天有个哥们告诉我现在程序卡的厉害.我给他说,是时候读点优化的书了.别一天到晚 ...
- SqlServer索引优化 查看碎片情况
本文引自 DBCC DBREINDEX重建索引提高SQL Server性能 查看碎片情况使用 dbcc showcontig 函数来进行 代码: --改成当前库 use DB_Name --创建变量 ...
- SqlServer性能优化 查询和索引优化(十二)
查询优化的过程: 查询优化: 功能:分析语句后最终生成执行计划 分析:获取操作语句参数 索引选择 Join算法选择 创建测试的表: select * into EmployeeOp from Adve ...
- SQLServer与MySQL约束/索引命名的一些差异总结
约束是数据库完整性的保证,主要分为:主键/外键/唯一键/默认值/check等类别,约束是一个逻辑概念,表示数据的某些特性(不能为空,唯一,必须满足某些条件等等),索引是一个逻辑与物理概念的结合,逻辑上 ...
- SQL 查询优化 索引优化
sql语句优化 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- MySQL索引优化看这篇文章就够了!
阅读本文大概需要 5 分钟. 来源:cnblogs.com/songwenjie/p/9410009.html 本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引 ...
- SQL通用优化方案(where优化、索引优化、分页优化、事务优化、临时表优化)
SQL通用优化方案:1. 使用参数化查询:防止SQL注入,预编译SQL命令提高效率2. 去掉不必要的查询和搜索字段:其实在项目的实际应用中,很多查询条件是可有可无的,能从源头上避免的多余功能尽量砍掉, ...
- 讲真,MySQL索引优化看这篇文章就够了
本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引背后的数据结构三部分相关内容,下面一一展开. 一.MySQL——索引基础 首先,我们将从索引基础开始介绍一下什么 ...
- 一本彻底搞懂MySQL索引优化EXPLAIN百科全书
1.MySQL逻辑架构 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...
随机推荐
- 《Python自动化测试修炼宝典》线上课程已经成功入驻网易云课堂......
<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课堂...... IT测试老兵利用工作之余,亲自录制的<Python自动化测试修炼宝典>线上课程已经成功入驻网易云课 ...
- ffmpeg只编译h264
./configure --arch=arm --cross-prefix=arm-none-linux-gnueabi- --extra-ldflags=-static --target-os=li ...
- asp.net core 1.1 + mysqlsugar + y-ui Demo
最近研究下asp.net core 此源码架构 : .net core mvc 简单三层 依赖注入(.net core自带) mysql + mysqlsugar +sqlsugarcore 需要修 ...
- FCLK、HCLK、PCLK
一,PLL S3C2440 CPU主频可达400MHz,开发板上的外接晶振为12M,通过时钟控制逻辑的PLL(phase locked loop,锁相环电路)来倍频这个系统时钟.2440有两个P ...
- 测试嵌入GeoGebra网页
使用 http://ggbstudy.top/tools/ggb2html/ 将GGB文件免费托管,然后在博客内容中点击“HTML”按钮插入GGB网页地址: <iframe src=" ...
- 9、Dockerfile语法
在Dockerfile中定义了很多关键字,通过关键字来完成Dockerfile的编写. Dockerfile官方文档 9.1 FROM 在Dockerfile中FROM主要是指定这个Doc ...
- java程序练习
数组求和作业 开发环境:java 工具:eclipse 两种数据类型excel和csv 在同学建议下,我选择用csv文件打开,这就引来了第一个问题,在java中如何调用csv文件.以下是我百度的结果 ...
- PD生成SQL脚本附带注释命令
'------------------------------------------------------------''脚本功能:' PowerDesigner中批量根据对象的name生成com ...
- sharepoint site performance
分析了您之前提供的在CPU使用率高的时候抓取的w3wp进程的dump,以下是一些发现: 在抓取dump文件的这个时刻,.Net的垃圾回收正在运行,在内存资源紧张时,.Net会自动启动内存垃圾回收机制, ...
- 【cocos2d-x 手游研发小技巧(5)获取网络图片缓存并展示】
今天是年前最后一天上班了,最后一天上班,祝大家马上有各种东西,最后一天也给写一点干货,就是获取网络图片: 经过自己简单封装了一下,实现了获取网络图片,按照比例展示出来,实现方法是cocos2dx - ...