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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
xml有哪些解析技术?区别是什么
Apr 26 面试题
经典c++面试题三
Jul 08 面试题
经典c++面试题六
Jan 18 面试题
一些.net面试题
Oct 06 面试题
DataList 能否分页,请问如何实现?
May 03 面试题
C#的几个面试问题
May 22 面试题
介绍一下gcc特性
Jan 20 面试题
为什么要用EJB
Apr 17 面试题
类的返射机制中的包及核心类
Sep 12 面试题
怎样自定义一个异常类
Sep 27 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 面试题
Java软件工程师综合面试题笔试题
Sep 08 面试题
一组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 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
初品cakephp 入门基础
2012/02/16 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php-msf源码详解
2017/12/25 PHP
js一组验证函数
2008/12/20 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python六大开源框架对比
2015/10/19 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
Python3 操作符重载方法示例
2017/11/23 Python
Django中多种重定向方法使用详解
2019/07/17 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
LVMH旗下最大的奢侈品网站平台:24S
2020/05/24 全球购物
单位刻章介绍信范文
2014/01/11 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
幼师小班个人总结
2015/02/12 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
标枪加油稿
2015/07/22 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript