我不知道索引視圖是什麼,但我想知道底層表中的數據發生了什麼變化時發生了什麼? 整個視圖緩存丟棄od只是改變了行嗎?SQL索引視圖:如果數據已更改,會發生什麼
我對用於搜索酒店可用性(+ 100k記錄)的幾個表(+5)進行了非常複雜的查詢,並且IMHO索引視圖可以顯着提高性能。 但是數據(少數幾行)經常更改(房間已售出,管理員atc處更改了免費房間),並且如果每次只更改一行時都會重新構建視圖,那麼對我的應用來說就是瓶頸。
或任何想法如何「緩存」非常coplex查詢?
謝謝。
我不知道索引視圖是什麼,但我想知道底層表中的數據發生了什麼變化時發生了什麼? 整個視圖緩存丟棄od只是改變了行嗎?SQL索引視圖:如果數據已更改,會發生什麼
我對用於搜索酒店可用性(+ 100k記錄)的幾個表(+5)進行了非常複雜的查詢,並且IMHO索引視圖可以顯着提高性能。 但是數據(少數幾行)經常更改(房間已售出,管理員atc處更改了免費房間),並且如果每次只更改一行時都會重新構建視圖,那麼對我的應用來說就是瓶頸。
或任何想法如何「緩存」非常coplex查詢?
謝謝。
從TechNet文檔:
不同於普通的索引,單行 插入到任何參與 表可導致多個行中的索引視圖改變 。這是因爲 單行可能會與另一個表的多個 行連接。 同樣適用於更新和刪除。因此,維護 索引視圖可能比維護 表上的索引更昂貴 。
來源:
http://technet.microsoft.com/en-us/library/cc917715.aspx#XSLTsection124121120120
即它聽起來好像行被更新酌情而不必更新/重建完整的視圖。
我假設你正在運行sql服務器。 100k行不是很多。如果您要加入5個表格,我建議您在考慮實施索引視圖之前,確保在加入的列上覆蓋索引。使用查詢分析器直接在查詢中查找瓶頸。如果你在這麼小的表上有性能問題,那裏可能會有令人討厭的表掃描。
我使用索引視圖重寫了我的SP,性能令人震驚!我希望在重建索引視圖時不會有大的額外維護。 – Feryt 2010-01-09 00:00:24