SqlServer2008实例36视图之普通视图

    使用视图可以创建由SELECT语句定义的表数据的虚拟表现。定义的SELECT语句能联结一个或者多个表,能包含一个或者多个列。一旦创建,视图能在查询的FROM子句中被引用。
    视图能用来为查询编写者简化数据访问,隐蒧底层SELECT语句的复杂度。视图对管理安全和保护敏感数据同样有用。如果希望限制最终用户直接访问表,可以对视图授予执行权限,而不是对底层的表。还可以通过在视图定义中仅仅包含必要的列,暴露那些仪仪希望被最终用户看到的列。在某些情况下,视图甚至能允许直接的数据更新。视图也对后台数据提供了标准的接口,除非底层的表结构有重大改动,否则你不需要对它们作任何修改。
    除了普通视图,还可以创建索引视图。这些视图在数据库中保存了真实的索引数据(普通视图实际不会去保存物理数据)廿还可以创建分布式分区视图,它可以让我们表示一个由分布在不同SQL Server实例中的水平分区表组成的逻辑表。SQL Server有3种视图。
        SQL Server视图类型

视图类型描  述
普通视图这个视图由T-SQL含询定义。在数据库中不保存实际数据,只是视图定义
索引视图这个视图一开始由T-SQL查询定义,然后在满足了一定条件后,就会创建聚集索引来物化和表数据相似的索引数据。一旦聚集索引创建后,就可以在需要时在索引视图上创建多个非聚集索引
分布式分区视图出于性能或可扩展性(例如,扩展了每个SQL Server实例的袭大小)的需求,这种视图使用UNIOIN ALL来把多个跨两个以上SQL Server实例的较小的袭组合成一个虚拟表

    视图是在把数据展现给最终用户之前预先筛选数据和列的好方法。视图能用于隐藏众多表联结和列的选取,也可以通过只对用户授权访问视图而不是实际的基础表来实现安全。
    说了这么多视图的用途,我们仍然需要注意一些性能问题。如果考虑为你的数据库使用视图,考虑下面的最佳实践。

  •     像SELECT查询一样对视图进行性能调优,因为普通视图从本质上说是一个“已存储的”查询。性能糟糕的视图会严重影响服务器性能。
  •     不要嵌套视图超过一级。具体来说,不要定义一个调用另外一个视图的视图,等等。当你希望对性能低下的奋询进行调优时,这么做会引起混乱,并且会降低每个嵌套级别的性能。
  •     如果可能的话,使用存储过程而不用视图。因为存储过程能重用执行计划,性能会有提升。存储过程也能减少网络流量,并可以实现更复杂的业务逻辑,而且比视图有更少的编码限制

    创建视图后,它的定义就保存在数据库中,但是视图返回的真实数据不会从底层表分离出来。

 
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值