介绍一下SQL Server里面的索引视图


Posted in 面试题 onJuly 31, 2016
复杂报表的场景经常会在数据仓储应用程序中遇到,它在查询过程中会对数据库服务器产生大量请求。当这些查询访问视图时,因为数据库将建立视图结果集所需的逻辑合并到从基本表数据建立完整查询结果集所需的逻辑中,所以性能将会下降。这一操作的开销可能会比较大,尤其当视图涉及到复杂的大量行处理–如大量数据聚合或多表联结时。因为结果集并不永久存放在数据库(标准视图)中,以后对该视图的访问可能导致在每次执行查询时建立结果集的代价。

SQL Server允许为视图创建独特的聚集索引,从而让访问此类视图的查询的性能得到极大地改善。在创建了这样一个索引后,视图将被执行,结果集将被存放在数据库中,存放的方式与带有聚集索引的表的存放方式相同。这就在数据库中有效地实现了查询结果。对于那些在FROM子句中不直接指定视图名的查询,SQL Server查询优化器将使用视图索引。现有查询将受益于从索引视图检索数据而无需重新编写程序原码的高效率。对于某些特定类型的视图,甚至可以获得指数级的性能改善。

如果在视图上创建索引,那么视图中的数据会被立即存储在数据库中,对索引视图进行修改,那么这些修改会立即反映到基础表中。同理,对基础表所进行的数据修改也会反映到索引视图那里。索引的惟一性大大提高了SQL Server 查找那些被修改的数据行。

维护索引视图比维护基础表的索引更为复杂。所以,如果认为值得以因数据修改而增加系统负担为代价来提高数据检索的速度,那么应该在视图上创建索引。

Tags in this post...

面试题 相关文章推荐
金智子午JAVA面试题
Sep 04 面试题
C语言面试题
Oct 30 面试题
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
Dec 13 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
Oct 31 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
Jul 27 面试题
北京某公司的.net笔试题
Mar 20 面试题
端口镜像是怎么实现的
Mar 25 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
linux面试题参考答案(9)
Jan 29 面试题
系统管理员的职责包括那些?管理的对象是什么?
Jan 18 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
一组SQL面试题
Feb 15 #面试题
SQL Server里面什么样的视图才能创建索引
Apr 17 #面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
Apr 28 #面试题
介绍一下sql server的安全性
Aug 10 #面试题
汇智创新科技发展有限公司
Dec 06 #面试题
如何提高SQL Server的安全性
Jul 25 #面试题
北京华建集团SQL面试题
Jun 03 #面试题
You might like
超级简单的php+mysql留言本源码
2009/11/11 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
javascript中"/"运算符常见错误
2010/10/13 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
Python查看多台服务器进程的脚本分享
2014/06/11 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
Python判断telnet通不通的实例
2019/01/26 Python
python pytest进阶之fixture详解
2019/06/27 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python如何保证输入键入数字的方法
2019/08/23 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
一名女生的自荐信
2013/12/08 职场文书
自主实习接收函
2014/01/13 职场文书
平安校园建设方案
2014/05/02 职场文书
行政监察建议书
2014/05/19 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
python多次执行绘制条形图
2022/04/20 Python