栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL Server 2008:按日期时间排序太慢

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server 2008:按日期时间排序太慢

通过排序

id
可能使用聚簇索引扫描,而通过
datetime
排序或索引查找来排序。

这两种方法都比聚簇索引扫描慢。

如果您的表格是由集群的

id
,则基本上意味着它已经被排序了。记录包含在中
B+Tree
,该记录具有一个按
id
顺序链接页面的链接列表。引擎应仅遍历链接列表以获取由排序的记录
id

如果

id
按顺序插入,则表示行的物理顺序将与逻辑顺序匹配,并且聚集索引扫描将更快。

如果您希望按来对记录进行排序

datetime
,则有两种选择:

  • 从表中获取所有记录并对它们进行排序。速度很明显。
  • 在上使用索引
    datetime
    。索引存储在磁盘的单独空间中,这意味着引擎需要在嵌套循环中的索引页和表页之间穿梭。它也更慢。

为了改善顺序,您可以在上创建一个单独的覆盖索引

datetime

CREATE INDEX ix_mytable_datetime ON mytable (datetime) INCLUDE (field1, field2, 鈥�)

,并将您在查询中使用的所有列都包含在该索引中。

该索引就像表的卷影副本,但是数据以不同的顺序排序。

这将使您摆脱键查找(因为索引包含所有数据),这将使排序

datetime
速度与on一样快
id

更新:

有关此问题的新博客文章:

  • SQL Server:聚集索引和排序


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号