【发布时间】:2014-03-26 13:58:55
【问题描述】:
我在一个繁重的存储过程中有一个条件语句。 25% 的行有一个 Visible=1 标准,但其余的没有,也没有在 Web 应用程序中使用,只是它被处理的一个参考。为该列添加索引是否有益?
WHERE
ev.Visible = 1 AND
(@StartDate IS NULL OR @StartDate <= ev.StartDate)
【问题讨论】:
-
这是你可以自己测试的东西。我们没有您的数据集。您在寻找什么究竟?
-
我想知道这样做是不是一种不好的做法,如果不是,是的,我会试一试。
-
好吧,您不想为每个查询添加索引。如果您发现查询没有以最佳方式执行,它被频繁使用,它可能从索引中受益,那么我不明白为什么不这样做。
-
不同意@FreshPrinceOfSO 的观点,如果不了解您的情况,很难给出索引建议。索引是有益的,但也有与之相关的成本。这完全取决于此查询的运行频率以及在该表上建立索引的额外
INSERT/UPDATE/DELETE成本。 -
这还取决于
AND之后的内容。您可能会从另一个索引或复合索引(包括Visible列)或部分索引或复合和部分索引中受益更多。
标签: sql sql-server stored-procedures indexing