SQL点点滴滴_查询类型和索引-转载
表中的示例基于 AdventureWorks2008R2 示例数据库, 在 SQL Server Management Studio 中运行这些示例时. 您可以通过显示实际的执行计划来查看查询优化器选择的索引. 有关详细信息, 请参阅 如何显示实际执行计划.
| 
 分类  | 
 描述  | 
 考虑的索引  | 
| 
 与特定值完全匹配  | 
 搜索与特定值完全匹配的项. 其中, 查询使用 WHERE 子句指定列项. 例如: SELECT BusinessEntityID, JobTitle FROM HumanResources.Employee WHERE BusinessEntityID = 228;  | 
 BusinessEntityID 列的非聚集或聚集索引  | 
| 
 与 IN (x,y,z) 列表中的某个值完全匹配  | 
 搜索与指定值列表中的某个值完全匹配的项. 例如: SELECT BusinessEntityID, JobTitle FROM HumanResources.Employee WHERE BusinessEntityID IN (288, 30, 15);  | 
 BusinessEntityID 列的非聚集或聚集索引  | 
| 
 值范围  | 
 搜索某个值范围, 其中, 查询指定的任何项的值在两个值之间. 例如: SELECT ProductModelID, Name FROM Production.ProductModel WHERE ProductModelID BETWEEN 1 and 5; 或 WHERE ProductModelID >= 1 AND ProductModelID < = 5;  | 
|
| 
 ProductModelID 列的聚集索引或非聚集索引  | 
||
| 
 表之间的联接  | 
 基于联接谓词, 在一个表中搜索与另一个表中的某个行匹配的行. 例如: SELECT a.ProductAssemblyID, b.Name, a.PerAssemblyQty FROM Production.BillOfMaterials AS a JOIN Production.Product AS b ON a.ProductAssemblyID = b.ProductID WHERE b.ProductID = 900;  | 
 ProductID 和 ProductAssemblyID 列的聚集索引或非聚集索引  | 
| 
 LIKE 比较  | 
 搜索以特定字符串(如 abc%)开头的匹配行. 例如: SELECT CountryRegionCode, Name FROM Person.CountryRegion WHERE Name LIKE N'D%'  | 
 Name 列的非聚集或聚集索引  | 
| 
 排序或聚合  | 
 需要隐式或显式排序顺序或聚合 (GROUP BY). 例如: SELECT a.WorkOrderID, b.ProductID, a.OrderQty, a.DueDate FROM Production.WorkOrder AS a JOIN Production.WorkOrderRouting AS b ON a.WorkOrderID = b.WorkOrderID ORDER BY a.WorkOrderID;  | 
 排序列或聚合列的非聚集索引或聚集索引 对于排序列,考虑为列指定 ASC 或 DESC 顺序.  | 
| 
 PRIMARY KEY 或 UNIQUE 约束  | 
 搜索与插入和更新操作中的新索引键值重复的值, 以强制 PRIMARY KEY 和 UNIQUE 约束. 例如: INSERT INTO Production.UnitMeasure (UnitMeasureCode, Name, ModifiedDate) VALUES ('OZ1', 'OuncesTest', GetDate());  | 
 约束中定义的列的聚集索引或非聚集索引  | 
| 
 列在选择列表中,但不在谓词中.  | 
 包含选择列表中未用于搜索和查找的一列或多列.例如: SELECT Title, Revision, FileName FROM Production.Document WHERE Title LIKE N'%Maintenance%' AND Revision >= 0 ;  | 
 在 INCLUDE 子句中指定了 FileName 的非聚集索引.  | 
| 
 PRIMARY KEY/FOREIGN KEY 关系中的 UPDATE 或 DELETE操作  | 
 在列参与 PRIMARY KEY/FOREIGN KEY 关系(无论带不带 CASCADE 选项)的更新或删除操作中搜索行.  | 
 外键列的非聚集索引或聚集索引.  | 
SQL点点滴滴_查询类型和索引-转载的更多相关文章
- SQL点点滴滴_非聚集索引设计指南-转载
		
非聚集索引包含索引键值和指向表数据存储位置的行定位器. 有关非聚集索引体系结构的详细信息, 请参阅 非聚集索引结构. 可以对表或索引视图创建多个非聚集索引. 通常, 设计非聚集索引是为改善经常使用的没 ...
 - SQL点点滴滴_聚集索引设计指南-转载
		
聚集索引基于数据行的键值在表内排序和存储这些数据行, 每个表只能有一个聚集索引, 因为数据行本身只能按一个顺序存储. 有关聚集索引体系结构的详细信息, 请参阅 聚集索引结构. 每个表几乎都对列定义聚集 ...
 - SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)
		
很久没写blog,不是懒,实在是最近我这的访问速度不好,用firefox经常上传不了图片 ....... 今天无意发现了SQL Server 2008 Datetime Cast 成 Date 类型可 ...
 - SQL点点滴滴_唯一索引设计指南-转载
		
唯一索引能够保证索引键中不包含重复的值, 从而使表中的每一行从某种方式上具有唯一性, 只有当唯一性是数据本身的特征时, 指定唯一索引才有意义. 例如, 如果您希望确保 HumanResources.E ...
 - SQL有三个类型的索引,唯一索引 不能有重复,但聚集索引,非聚集索引可以有重复
		
重要: (1) SQL如果创建时候,不指定类型那么默认是非聚集索引 (2) 聚集索引和非聚集索引都可以有重复记录,唯一索引不能有重复记录. (3) 主键 默认是加了唯一约束的聚集索引,但是也可以在主键 ...
 - SQL点点滴滴_聪明的小写法(持续更新中)
		
1.生成序列号 SELECT number + 1 ,number FROM master..spt_values WHERE type = 'P' ORDER BY number 说明: maste ...
 - SQL点点滴滴_特殊用法笔记
		
声明: 本文为转载,感谢原作者的辛勤付出. 原博客地址为:http://www.cnblogs.com/icyJ/p/SQL_Statement.html 1.MERGE用法:关联两表,有则改,无则加 ...
 - SQL SERVER 強制指定使用索引 -转载  只为学习
		
今天很高兴 ,有学会了一种数据库优化的方式,哈哈 今天遇到一個查詢逾時的問題:兩段SQL,只差在WHERE,一個是WHERE COLUMN1='AAA',一個是WHERE COLUMN1='BBB', ...
 - SQL点点滴滴_查看所有存储过程或视图的位置及内容
		
代码:select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_ship ...
 
随机推荐
- SD341X-SD343H管网法兰式伸缩蝶阀厂家,SD341X-SD343H管网法兰式伸缩蝶阀价格 - 专题栏目 - 无极资讯网
			
无极资讯网 首页 最新资讯 最新图集 最新标签 搜索 SD341X-SD343H管网法兰式伸缩蝶阀 无极资讯网精心为您挑选了(SD341X-SD343H管网法兰式伸缩蝶阀)信息,其中包含了(SD3 ...
 - js面向对象(二)——继承
			
上一篇随笔讲了封装,这一篇我们说说继承,还是那上一篇猫和狗说事儿 function Dog(name,s){ this.name=name; this.sex=s; } Dog.prototype.t ...
 - Restful API学习笔记
			
之前关于这个概念在网上看了一些,看完似懂非懂,模模糊糊,发现专业术语或者说书面表达的形式对于理解这种十分抽象的概念还是低效了点. 书面文档方面看了以下几个: 理解本真的REST架构风格 1. 要深入理 ...
 - vue  element  常见问题
			
1. vue2.0 给data对象新增属性,并触发视图更新 $set this.$set(this.ossData, "signature", 222) // 正确用法 // 数 ...
 - SC OpenService 失败5:拒绝访问
			
当我们在cmd里使用 sc delete 服务名 ,来删除服务的时候,报错误,SC OpenService 失败5:拒绝访问. 这似乎是因为权限不够,解决方法. 首先,我们必须先取得管理员权限,以 ...
 - 仿jQuery的toggle方法
			
两次点击事件进行切换 var toggle = (function () { var a = true; return function (fn1, fn2) { a = !a; var toggle ...
 - (转)MySQL5.6主从复制技术
			
原文:http://www.cnblogs.com/ilifeilong/category/1014799.html MySQL5.6复制技术(4)-MySQL主从复制过滤参数 摘要: 复制的过滤主要 ...
 - 我的Python升级打怪之路【五】:Python模块
			
模块,是一些代码实现了某个功能的集合 模块的分类: 自定义模块 第三方模块 内置模块 导入模块 import module from module.xx.xx import xx from modul ...
 - 【Lua】CJSON的安装
			
Lua CJSON 是 Lua 语言提供高性能的 JSON 解析器和编码器,其性能比纯 Lua 库要高 10 到 20 倍.Lua CJSON 完全支持 UTF-8 ,无需依赖其他非 Lua/LuaJ ...
 - 编译impala2.0.0
			
使用redhat5.8没编译成功,改用redhat6.4最终编译成功. 参考官方的文档https://github.com/cloudera/Impala/tree/v1.2.2 不知道官方的read ...