我熟悉SQL Server索引視圖(或Oracle物化視圖),我們在我們的OLAP應用程序中使用它們。它們具有非常酷的功能,能夠篡奪執行計劃並將其重新映射到索引視圖,無需更改現有代碼。OLTP中的索引視圖?
IE。假設我有一個非常昂貴的SPROC連接。
SELECT [某些列]
FROM表1 INNER JOIN表2 [詳情]
INNER JOIN表3 [一批更多JOINS] ...
如果我撰寫這舉行的索引視圖類似的結果集,那麼查詢優化器很可能會將SPROC發送到我的索引視圖,而不是基表,並且性能會有很大提升。
現在說我想在OLTP!中使用索引視圖!?我的意思是大多數OLTP(如本站點)相對較重,如果它們的連接費用很高,那麼我們可以加快它們的速度並可能減少鎖定爭用(http://www.codinghorror.com/blog/archives/001166.html)。更好的是,你不必更改任何代碼,只需編寫索引視圖即可。
但是,這也意味着數據庫變得更大,因爲我們需要保持這些數據的副本索引視圖...
有沒有人使用索引視圖解決在OLTP爭或速度的問題?我怎麼從未見過這種使用?
在OLTP中創建了這些物化視圖還是將它們存儲在別處?如果它們是在OLTP中創建的,它是如何影響數據庫大小和性能的。這些OLTP在**實體化視圖被放下之前是否有重負載**? – Tyler 2008-09-11 19:51:04