SQL Server 視圖的總結
視圖是存儲在物理表之上的,受物理表的改動而改動的,一般不用再更新。
視圖作為過濾器:從過濾器名稱可以看出,這樣的一個視圖的主要目的在於隱藏,可以當作是隱藏的select語句。
視圖中的一個比較重要的細節是,在很多的更新時候,需要加上“checkwith option”語句(在Update、insert、delete是需要滿足where條件),這樣才可以保證數據的完整性。
另外:在大多數的數據庫中,視圖這一工具的使用往往不是過多就是過少。一些人喜歡用視圖抽象化幾乎所有一切的內容(這樣做的同時,意味著增加了一層處理)。另外一些人則好像忘記視圖也是一種選擇。視圖應該在恰當的時候使用,才能得到更好的效果。
視圖使用的過程中,應該注意的幾個方面:
1. 避免基於視圖構建視圖——而應該將來自第一個視圖的合適的查詢信息應用到新的視圖中。
2. 記住使用with check option的視圖提供一些不同check約束所不具備的靈活性。
3. 視圖的加密——加密後的視圖是不能再恢復未加密的代碼了。
4. 除了權限之外,使用Alter View意味著完全替換了現有的視圖。這意味著如果要使被修改的視圖裡的加密和限制仍然是有效的,那麼必須在alter語句中包含withencryption和withcheck option子句。
5. 使用sp_helptext顯示視圖的支持代碼——避免使用系統表。
6. 最小化用於生產查詢的視圖的用戶——因為他們增加了額外的系統開銷並且危害性能。
視圖一般的使用情況:
1. 過濾行
2. 保護敏感數據
3. 降低數據庫復雜性
4. 將多個物理數據庫抽象為一個邏輯數據庫