我在视图上创建了一个唯一的聚集索引。聚集索引包含5列(该视图中的30列),但使用此视图的典型选择将需要全部30列。Sql Server 2005索引视图
做一些测试表明查询5列所花费的时间比所有30列快得多。这是因为这是关于选择6x列的天然开销,或者是因为索引视图没有将非索引列存储在临时表中,因此需要执行一些额外步骤来收集缺失列(连接我想呢?)
如果是后者,有什么办法可以防止这个?那么,即使前者......有什么办法解决这个问题!
编辑:出于比较目的,只有5列的索引视图上的选择比基表上的相同查询快大约10倍。但是,对所有列的选择基本上与基本表上的查询速度相同。
只需拔值 – 2011-03-15 20:46:12
@Joda - 什么在你的where子句?向视图添加聚集索引实际上会执行视图查询并将结果存储在索引中,因此这不是您的第二个担心。 – JNK 2011-03-15 20:47:28
where子句包含索引的5列中的3列的值 – 2011-03-15 20:50:05