我正在使用SQL 2000,并且在包含大约3000万行的表上运行简单的select语句。选择查询如下所示:优化选择查询
select col1, col2, col3 from Table1 where [email protected] and [email protected] and [email protected]
表中有一个聚集索引(即主键),但没有用作where条件。上面提到的所有标准都没有索引。
如何优化此查询?
如果我在where子句中为每列添加索引,那会有什么区别吗?
如果我在where子句中有10个列,那么这10个列中的所有列都有索引吗?
编辑:这可能是最常见的面试问题之一:)
指数功效神奇!谢谢....但只是好奇,有没有其他方法可以用来更快地做出这样的查询? – Bhaskar 2010-02-05 12:44:55
@Bhaskar:是的,你可以走得更远。分析执行计划,看看最需要的是什么。最有效的索引取决于表中包含的数据以及它的变化量。如果表中有许多插入/更新/删除操作,则应检查索引的碎片并在索引趋向于碎片时指定填充因子。 – Guffa 2010-02-05 13:00:57