我在視圖上創建了一個唯一的聚集索引。聚集索引包含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