zoukankan      html  css  js  c++  java
  • SQL Server中视图的特点与优化

    在SQL SERVER中的使用过程中,视图是我们不可避免要经常使用到的。那到底什么是视图呢?概括的讲,视图就是用户自己写的一段SQL语句。我们为该段SQL语句起一个名字,就称为视图名,以后想要利用该段SQL语句返回的结果集时,只要像查询表一样针对视图名写SQL语句就可以了,所以,你也可以把视图想像为一个虚拟表。

    下面,我们讲解一个视图的创建与使用:

    一,创建视图:

    create view v_viewname as select * from table1

    其中view为视图关键词,v_viewname为我们创建的视图名,select * from table1为该视图返回的结果集.

    二,调用视图:与查询表一样

    select * from v_viewname

    三,删除视图:

    drop view v_viewname

    从上面的操作我们可以看出,视图创建好后,对它的操作,就和操作实体表一样。

    视图的特点: 一,视图着重于特定数据。 视图可以让用户或者程序开发人员只看到他们所需要的数据,而不需要把表中的所有信息与字段暴露出来,这样增强了数据的安全性。

    二,简化数据的操作,易维护。 我们可以将经常用到的多表联合查询出来的数据,或特定的结果集定义为视图,这样就起到了模块化数据的作用。我们在使用这些数据时直接查询该视图就可以,而不用到处写长长的SQL语句,这样也起到易维护的作用。

    三,视图可以限定查询数据。 比如:对于不同的用户,我们只提供部分数据给他。这样,我们就可以在视图中限定结果集,然后返回该视图给他。这样,无论用户怎么对视图定义查询条件,他也不能查询出我们不想提供给他的数据。

    视图的优化: 虽然视图可以给我们带来种种便利,但不意味着我们就可以滥用它。因为视图其实就是一段SQL语句,所以它的结果都是每次调用时动态生成的。如果不合理的定义视图,必然带来性能上的损耗。

    下面是我们在创建视图应该要注意的几点: 一,操作视图会比直接操作基础表要慢,所以我们尽量避免在大型表上创建视图。

    二,尽量不要创建嵌套视图,就是在视图中使用视图。 这样在查询时,会多次重复访问基础表,带来性能损耗。

    三,尽量在视图只返回所需的信息,尽量不要在视图使用不需要访问的表。

    四,在大型表或者复杂定义的视图,可以使用存储过程代替。

    五,频繁使用的视图,可以使用索引视图来代替。

  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/zxktxj/p/2546677.html
Copyright © 2011-2022 走看看