2013-01-13 133 views
2

從另一個視圖創建視圖有什麼缺點?創建視圖從視圖中選擇

代碼示例:

CREATE OR REPLACE VIEW view1 AS 
SELECT * from table1; 

然後:

CREATE OR REPLACE VIEW view2 AS 
SELECT * from view1; 

當然這不是觀點類似這樣的例子,但是這是一個很好的策略?

+0

你爲什麼認爲這可能不是一個好策略?創建從另一個視圖中選擇視圖的原因有很多。 – Taryn

+0

對於postgres,這種方法沒有任何問題。 'select from view2'的查詢計劃將被有效地重寫爲'select * from table1'。只需檢查最終的計劃。 – wildplasser

+0

我不知道,我想聽聽別人對此事的看法。也許當你改變一個有其他依賴的視圖時,你必須通過所有視圖進行修改? – NewK

回答

0

如果您的基礎視圖正在執行兩個或多個表的複雜連接,並且您的新視圖需要相同的數據,那麼它絕對是一個非常好的策略。您可以節省自己需要再次進行同一連接的努力。

對於單個表格或簡單的連接,這不是一個壞的或好主意。這是有效的,如果這就是你想要做的事情......