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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
Oct 05 面试题
C语言编程题
Mar 09 面试题
雅虎笔试题(字符串操作)
Mar 24 面试题
数据库笔试题
May 09 面试题
几道数据库的面试题或笔试题
May 31 面试题
什么是重载?CTS、CLS和CLR分别做何解释
May 06 面试题
如何判断计算机可能已经中马
Mar 22 面试题
override和overload的区别
Mar 09 面试题
UML设计模式笔试题
Jun 07 面试题
一套软件开发工程师笔试题
May 18 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
Python面试题:Python里面如何生成随机数
Mar 12 面试题
一组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/09/01 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
PHP实现的简单缓存类
2015/07/29 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
python字符串对其居中显示的方法
2015/07/11 Python
简单实现python数独游戏
2018/03/30 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
Servlet方面面试题
2016/09/28 面试题
个人找工作自荐信格式
2013/09/21 职场文书
个人简历自我评价八例
2013/10/31 职场文书
创先争优一句话承诺
2014/05/29 职场文书
团队激励口号
2014/06/06 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书