2010-09-03 126 views
3

創建視圖有什麼不利影響,特別是數據庫中的大視圖(50列)?SQL查看問題

回答

1

從表現的角度來看,我認爲本身並沒有真正的負面影響。如果底層查詢效率低下並且可能導致不希望的鎖定,那麼該視圖將繼承這些問題,儘管有些緩解的原因是它比任意語句更有可能被緩存。我會說負面影響的風險在於,通過創建視圖並抽象查詢的複雜性,您可能會冒着被使用的風險,而沒有深入瞭解底層查詢的特徵。然後在積極的一面,視圖也開闢了一些不同的優化可能性(索引視圖等),並且有時能夠解規格化一組數據可以顯着減少編寫冗餘查詢的需要。

因此,與大多數工具一樣,它們是幫助還是傷害掌握在實施者手中。

1

取決於來自50個內聯表的1列或來自1個表的50列。
說實話,要麼沒有問題,只要你沒有使用大量的標量函數。

想想吧,這是一個非常主觀的問題。粘貼一些代碼;)

+0

嗯,我沒有帶創建的視圖還,但基本上我有一個表的XML列,我會解析出大量的數據變成了50 +列視圖 – mint 2010-09-03 15:23:53

0

根據我的經驗,視圖爲您提供與直接查詢物理表格完全相同的性能。

0

如果它是一個索引視圖,它將佔用您的數據庫中更多的空間,並減慢對基表中記錄的更新。

1

視圖上SELECT(非指數)確實是這樣的:

SELECT Xyz FROM 
(
    SELECT Abc FROM yourbigtable 
) 

因此,檢查要實現第一個我想說的查詢的性能。

嘗試先解決無視圖的問題,然後再簡化。

邁克