如何使用非聚集索引?

How to use non-clustered index?

我有关于非聚集索引工作的一般性问题假设我的 table 上有 4 个非聚集索引,我想知道从这 4 个索引调用哪个非聚集索引并且是否有蚂蚁从这 4 个索引中使用特定索引的方法。

您可以使用提示强制 SELECT 查询使用特定索引,如下所示:

SELECT <columns> FROM Table_Name WITH(INDEX(Index_Name))

比如 table 'Tab_test' 定义了四个非聚集索引,如 Idx_1、Idx_2、Idx_3 和 Idx_4。现在您想 SELECT 查询使用 Idx_3 然后下面的查询将强制 SELECT 语句使用 Idx_3:

SELECT <columns> FROM Tab_test WITH(INDEX(Idx_3))

在 运行 您的查询之前,点击 cntr-M,或从 SQL Server Management studio 的查询菜单中点击 select "Include Actual Execution Plan"。查询完成后,单击结果 window 的 "execution plan" 选项卡。滚动直到找到计划从有问题的 table 读取的位置,它会告诉您使用了哪个索引。