2011-09-16 47 views

回答

11

它簡化了調用並提供了一個間接層。

所以,如果你有一個複雜的選擇與大量的聯接,你可以在視圖中實現它,只需調用視圖,而無需考慮所有這些聯接。然後,您可以重新使用此視圖。

此外,如果您以這種方式使用視圖而不是表格,將來如果您需要遷移列,則可以輕鬆地進行此操作,並且只需要對視圖進行更改。

2

除了Oded提到的明顯好處之外,您還可以使用materialized views大幅度提高速度。來自wikipedia:

在關係模型之後的數據庫管理系統中,視圖是表示數據庫查詢結果的虛擬表。無論何時查詢或更新普通視圖的表,DBMS都會將這些轉換爲針對基礎表的查詢或更新。物化視圖採用不同的方法,將查詢結果緩存爲可能會從原始基表隨時更新的具體表。

1

有幾種,但我認爲主要的好處是視圖是邏輯數據獨立性的SQL實現。

構建一個可更新的視圖,並且使用該視圖的應用程序相對於基礎表中的更改是相對免疫的。更改基礎表的結構,更新視圖定義,並且所有應用程序都像沒有任何事情一樣工作。 (在舊版數據庫,可能有數以百計的書面幾十種語言的應用程序。這是勝利。)

其他好處(意譯克里斯日期)

「自動」安全隱患的數據。限制對視圖的訪問,並且對誰看到什麼有精細的控制。

應用程序的「DRY」功能。視圖可以爲複雜的SELECT語句提供一個簡單的公共接口,因此應用程序只需SELECT column-list FROM my-easy-view即可。

不同的用戶可以用不同的方式看到相同的數據。

相關問題