sql - 在 SQL Server 中创建索引的最佳方法

标签 sql sql-server sql-server-2008

我的表中有四列(a、b、c、d),它们都依赖于列(日期),所以在我的查询中我有:

 select a where date 
 select b where date 
 select c where date 
 select d where date

我需要知道为所有这些创建索引的最佳方法是什么,我有两个建议:

第一个建议:

create i_a on a
create i_b on b
create i_c on c
create i_d on d
create i_date on date

第二个建议:

create i_a on a include date
create i_b on b include date
create i_c on c include date
create i_d on d include date

请问哪个更好。

最佳答案

这可能对您有帮助:

CREATE NONCLUSTERED INDEX Index_Name ON TableName(Date) INCLUDE(A,B,C,D)

您想要索引的列应该是用于过滤的列(WHERE 子句)。您可以添加 INCLUDE 以避免查找。

关于sql - 在 SQL Server 中创建索引的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643885/

相关文章:

sql - 小数域上的算术溢出错误

sql - 生成对于外键给定值唯一的增量ID

sql-server - SQL Server 平均查询

sql-server - 有没有办法在 SQL Server 2005/2008 中禁用自动类型强制,从 varchar 到 int(例如)?

c# - 使用连接从大表中尽可能快地检索

sql - SQL Server 2008 中的 COUNT (DISTINCT column_name) 与 COUNT (column_name) 之间存在差异吗?

mysql - 如何让 MySQL 优化器在加入时首先使用我的索引?

sql - 如何对镜像数据库进行架构更改?

mysql - MySQL LIMIT range of 0,500 和 1, 500 有什么区别?

sql-server - 通过SQL Reporting Services发送带有PDF的多个附件报告的电子邮件