細說SQL Server中的視圖總結

  細說SQL Server中的視圖總結

視圖是存儲在物理表之上的,受物理表的改動而改動的,一般不用再更新。

細說SQL Server中的視圖總結

視圖作爲過濾器:從過濾器名稱可以看出,這樣的一個視圖的主要目的在於隱藏,可以當作是隱藏的select語句。

視圖中的一個比較重要的細節是,在很多的更新時候,需要加上“checkwith option”語句(在Update、、是需要滿足where條件),這樣纔可以保證數據的完整性。

另外:在大多數的數據庫中,視圖這一工具的使用往往不是過多就是過少。一些人喜歡用視圖抽象化幾乎所有一切的內容(這樣做的同時,意味着增加了一層處理)。另外一些人則好像忘記視圖也是一種選擇。視圖應該在恰當的時候使用,才能得到更好的效果。

視圖使用的過程中,應該注意的幾個方面:

1. 避免基於視圖構建視圖——而應該將來自第一個視圖的`合適的查詢信息應用到新的視圖中。

2. 記住使用with check option的視圖提供一些不同check約束所不具備的靈活性。

3. 視圖的加密——加密後的視圖是不能再恢復未加密的代碼了。

4. 除了權限之外,使用Alter View意味着完全替換了現有的視圖。這意味着如果要使被修改的視圖裏的加密和限制仍然是有效的,那麼必須在alter語句中包含withencryption和withcheck option子句。

5. 使用sp_helptext顯示視圖的支持代碼——避免使用系統表。

6. 最小化用於生產查詢的視圖的用戶——因爲他們增加了額外的系統開銷並且危害性能。

視圖一般的使用情況:

1. 過濾行

2. 保護敏感數據

3. 降低數據庫複雜性

4. 將多個物理數據庫抽象爲一個邏輯數據庫