SqlServer中在查询时,我们为了优化性能,通常会为where条件的字段建立索引,如果条件比较固定还会建立组合索引,接下来,我们来看一下索引与查询的相关知识及相关陷阱。

SQL表自动为主键加聚集索引的猜想

我认为应该是对查询的优化,因为如果聚集(最多只能有一个)索引的话,在SQL查询时,将进行全表扫描,反之,进行聚集索引(B树结构)扫描,这将大大加快检索的速度;有时,我们感觉对主键(自增的)加聚集索引没什么用,所以就把它改为非聚集索引,但当我们为表的其它字段索引后,发展查询时没有按着索引检索,而是全表扫描,这是为何?原因是表中没有任何字段是聚集的索引,所以你还必须为这个索引加上聚集的,sqlserver怕我们忘记加“聚集”索引,所以当我们在设置主键时,它帮助我们自动为主键加上聚集索引,这是那个原因。

对于存在聚集索引的表,在查询计划中可以观察到它是走聚集索引的

反之,我们把主键的聚集索引改为非聚集索引,结果就不同了

当表中没有聚集索引时,查询将会是全表扫描

我们还真应该记得:为了优化查询,我们的表中需要设置聚集索引,当然它可以不是主键。

最新文章

  1. wireshark抓包工具简介以及tcp三次握手的一些含义
  2. Please allow Subclipse team to receive anonymous usage statistics for this Eclipse intance(info)
  3. IBatis 批量插入数据
  4. 删除Windows 服务
  5. codeforces 442C C. Artem and Array(贪心)
  6. POJ 2970 The lazy programmer(优先队列+贪心)
  7. kettle菜鸟学习笔记2----第一个kettle转换的建立及执行
  8. [原创作品] RequireJs入门进阶教程
  9. Java标准注释配置
  10. ORACLE复杂查询之连接查询
  11. nginx系列11:负载均衡哈希算法ip_hash与hash模块
  12. String字面量
  13. hadoop2.6.4集群笔记
  14. linux上的工具或软件
  15. iOS &Android 项目 Jenkins持续集成
  16. 对比数据库字段不同的sql (mysql版)
  17. Spring Boot 使用IntelliJ IDEA创建一个web开发实例(五)
  18. spring mvc框架web.xml配置
  19. 第一章IP:网际协议
  20. 局部敏感哈希LSH

热门文章

  1. 转载.NET 4.0中的泛型的协变和逆变
  2. PHP魔术变量总结
  3. AT指令
  4. 按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。 (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性, 和计算体积的方法。 (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、 宽、高,输出其底面积和体积。
  5. Mac窗口管理管理软件SizeUp
  6. MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
  7. ThinkPHP CURD方法盘点:table方法
  8. 将图片序列保存为GIF文件
  9. sphinx配置文件继承
  10. 【转】int const A::func()和int A::func() const