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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
Feb 08 面试题
北京银河万佳Java面试题
Mar 21 面试题
某个公司的Java笔面试题
Mar 11 面试题
Android笔试题总结
Nov 29 面试题
什么是Rollback Segment
Apr 22 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
Oct 24 面试题
上海期货面试题
Jan 31 面试题
介绍一下Linux中的链接
Jun 05 面试题
初始化了一个没有run()方法的线程类,是否会出错?
Mar 27 面试题
类的返射机制中的包及核心类
Sep 12 面试题
Java中的类包括什么内容?设计时要注意哪些方面
May 23 面试题
Unix如何添加新的用户
Aug 20 面试题
一组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
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
python 提取文件指定列的方法示例
2019/08/07 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
摄影实习自我鉴定
2013/09/20 职场文书
结婚典礼证婚词
2014/01/08 职场文书
初三家长会邀请函
2014/01/18 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
学校教师培训工作总结
2015/10/14 职场文书
妇产科护理心得体会
2016/01/22 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Kubernetes控制节点的部署
2022/04/01 Servers
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript