SQLServer视图的总结

网络整理 - 08-18

   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. 将多个物理数据库抽象为一个逻辑数据库