SQL Server索引是否命中

582 阅读2分钟
  1. 打开Navicat,连接到你的SQL Server实例。
  2. 在连接成功后,展开你的数据库并找到你想要检查的表。
  3. 右键单击该表,选择“设计表”。
  4. 在“设计表”窗口中,选择“索引”选项卡。
  5. 在该标签页下,你可以看到表的每个索引的详细信息,包括索引名称、列、类型和唯一性等。
  6. 你可以右键单击任何一个索引,并选择“索引数据”菜单项来查看该索引的详细信息。
  7. 在“索引数据”子窗口中,你可以看到该索引中的行数、页面数、平均扫描次数以及实际扫描次数等信息。
  8. 如果你想确保该索引被大量使用,你可以通过执行SQL语句来确定查询是否命中该索引,例如:
SELECT COUNT(*) 
FROM your_table 
WHERE indexed_column = 'your_value';

**

在执行完这个查询后,你可以查看执行计划并检查索引扫描次数和索引查找次数。 如果索引扫描数很低,而索引查找数很高,则说明该索引未能被命中,需要进一步优化。

查询优化器将生成一个执行计划,其中包含多个标签以显示查询优化器在执行查询时执行的各种操作类型和开销估算。以下是常见的一些操作类型和意义:

  1. SELECT:用于检索数据
  2. SORT:对数据进行排序
  3. INDEX SCAN/SEEK:使用索引扫描/搜索数据
  4. TABLE SCAN:对整个表进行扫描
  5. HASH JOIN/MERGE JOIN:用于连接两个或多个表的数据
  6. CLUSTERED INDEX INSERT/UPDATE/DELETE:用于 clustered 索引的插入/更新/删除操作

每个操作标签都包含多个属性和列,例如开销估算、实际执行行数、数据访问方式以及其他有关操作类型的重要信息。

以下是一些常见的列和属性:

  1. OPERATION/PHYSICAL OPERATION:操作类型
  2. ESTIMATED/ACTUAL NUMBER OF ROWS:估计/实际行数
  3. ESTIMATED/ACTUAL CPU/IO TIME:估计/实际CPU/IO时间
  4. ESTIMATED/ACTUAL EXECUTION PLAN:估计/实际执行计划
  5. ESTIMATED/ACTUAL DATA SIZE:估计/实际数据大小
  6. PREDICATE:过滤操作
  7. OBJECT:访问的对象名称