sql - dm_db_missing_index_details 的有效使用

标签 sql sql-server azure

如何有效地使用 SQL SERVER 数据库的dm_db_missing_index_details。我是否需要创建表中详细说明的所有缺失索引以及equality_columnsinequality_columns 的含义。 在创建索引(非聚集索引)时,如何利用 equality_columnsinequality_columns包含列

最佳答案

当然,您不需要创建 dm_db_missing_index_details 建议的所有索引,但值得关注并检查可能的性能改进

等式列是用于使用 EQUAL“=”运算符进行搜索操作的字段

不等式列是更适合范围比较的字段,例如 BETWEEN 或 LESS 或 GREATER THAN 等。

根据您的评论,可以执行以下语句来创建非聚集索引

CREATE NONCLUSTERED INDEX [INDEXNAME] ON [TABLENAME] (
    [EQUALITYCOLUMNNAME], 
    [INEQUALITYCOLUMNNAME]
) 
INCLUDE (
    [INCLUDECOLUMN]
);

虽然我在单个索引定义中添加了等式列和不等式列,但您可以考虑创建单独的索引

通常,大多数选择性列和相等列应在索引列列表的开头定义。在 Create Index 语句的字段列表中,不等式列位于等式列之后

请引用create index声明说明

关于sql - dm_db_missing_index_details 的有效使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47688250/

相关文章:

azure - 数据工厂 - 数据流 REST 分页

sql - 将 SQL 语法转换为 ActiveRecord 查询的工具

php - Laravel,如何避免私有(private)聊天 api 结构中的 n + 1 问题?

sql - 在 SELECT 中选择行作为列

sql-server - sp_executesql 使用错误的执行计划

azure - 逻辑应用 "Get file Content"Sharepoint 连接器对于超过 20MB 的文件超时

mysql - 如何对mysql中的值进行多次检查

mysql - 涉及具有 “fieldname” 和 “fieldvalue” 列的表的 SQL 联接

javascript - 使用 Node mssql 准备语句的事务

sql - Azure SQL : can’t ping the Private Endpoint from on-prem