数据库索引是否反向工作?

问题描述

| 给定一个数据库表示例:
ID
Name
DateOfBirth
假设我想在出生日期创建一个索引,可以将索引添加
DateOfBirth ascending
上。如果现在我的代码dob升序查询,它将运行良好且快速。 但是,数据库是否足够智能,可以反向使用索引,即如果我查询“ 2”,它是否仍然可以利用该索引,还是我应该专门为降序创建另一个索引?     

解决方法

索引页面形成一个双向链接列表,如下所示,并带有指向下一页和上一页的指针。 因此,SQL Server可以向后和向前遍历索引。扫描方向显示在执行计划的属性中。 在复合索引中,
Asc
/
Desc
变得重要的地方。 如果将索引定义为“ 5”,则对于查询“ 6”仍然需要排序。 请注意,您可能拥有比您意识到的更多的复合索引,并且非唯一的非聚簇索引会将聚簇索引键值添加到其键中。