【问题标题】:How to use non-clustered index?如何使用非聚集索引?
【发布时间】:2019-02-05 10:06:13
【问题描述】:

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

【问题讨论】:

  • 您使用的是哪个 dbms? (ANSI SQL 规范不包括索引。)
  • 我正在使用 ms sql

标签: sql-server non-clustered-index


【解决方案1】:

在运行查询之前,点击 cntr-M,或从 SQL Server Management Studio 的查询菜单中选择“包括实际执行计划”。查询完成后,单击结果窗口的“执行计划”选项卡。滚动直到您找到计划从相关表中读取的位置,它会告诉您使用了哪个索引。

【讨论】:

    【解决方案2】:

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

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

    假设表 '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))
    

    【讨论】:

    • 好的,没关系。现在,如果我没有提及任何索引,我如何确定正在使用哪个索引。如果我有这个简单的查询“SELECT FROM Table_Name” 这里有两个问题,是否有来自 Idx_1、Idx_2、Idx_3 和 Idx_4 的索引将被使用或不使用。如果使用了任何索引,我如何确定将使用哪个。
    • 感谢 CBS 解决 1 个问题
    猜你喜欢
    • 2020-08-04
    • 2014-07-28
    • 2013-08-20
    • 1970-01-01
    • 2013-08-07
    • 2021-01-14
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多