BVernon Asked: 2016-08-19 10:47:10 +0800 CST2016-08-19 10:47:10 +0800 CST 2016-08-19 10:47:10 +0800 CST 同时添加 Asc 和 Desc 索引可以提高性能吗? 772 想知道添加升序和降序索引(在同一列上)是否可以让 SQL 通过同时使用两个索引来更快地搜索? sql-server index 3 个回答 Voted Best Answer Martin Smith 2016-08-19T12:17:10+08:002016-08-19T12:17:10+08:00 索引的叶页形成一个双向链表,带有指向下一页和上一页的指针。这意味着可以向前和向后扫描索引。 有一个细微的差别,目前只有前向扫描可以并行化,但极不可能证明仅针对该边缘情况维护两者的成本是合理的。 它可以让 SQL 通过同时使用两个索引来更快地搜索吗? 没有 SQL Server 不会以某种并行化工作的尝试将单个索引访问拆分为多个索引访问。 Kenneth Fisher 2016-08-19T11:58:28+08:002016-08-19T11:58:28+08:00 不,这不会有帮助。请记住,每个索引都是一个 B 树(平衡树)。SQL 将从顶部开始,无论如何都要向下工作。 M / \ E H K X /\ /\ /\ /\ A F G I J L M Z SQL 可以很容易地在它选择的任何方向沿着树向下工作。事实上,同时拥有这两个索引会产生要求维护这两个索引的负面影响。 paparazzo 2016-08-19T11:20:47+08:002016-08-19T11:20:47+08:00 我不这么认为。您选择一种或另一种方式来减少碎片化。 如果您将查询计划与一个索引进行比较,则两种方式的成本分为 50 50。
索引的叶页形成一个双向链表,带有指向下一页和上一页的指针。这意味着可以向前和向后扫描索引。
有一个细微的差别,目前只有前向扫描可以并行化,但极不可能证明仅针对该边缘情况维护两者的成本是合理的。
没有 SQL Server 不会以某种并行化工作的尝试将单个索引访问拆分为多个索引访问。
不,这不会有帮助。请记住,每个索引都是一个 B 树(平衡树)。SQL 将从顶部开始,无论如何都要向下工作。
SQL 可以很容易地在它选择的任何方向沿着树向下工作。事实上,同时拥有这两个索引会产生要求维护这两个索引的负面影响。
我不这么认为。您选择一种或另一种方式来减少碎片化。
如果您将查询计划与一个索引进行比较,则两种方式的成本分为 50 50。