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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
List、Map、Set三个接口,存取元素时,各有什么特点?
Sep 27 面试题
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
Mar 19 面试题
为什么UNION ALL比UNION快
Mar 17 面试题
.net笔试题
Mar 03 面试题
武汉东之林科技有限公司机试
Sep 17 面试题
三维科技面试题
Jul 27 面试题
了解AppleShare protocol(AppleShare协议)吗
Aug 28 面试题
西安当代医院管理研究院笔试题
Dec 11 面试题
软件测试笔试题
Oct 25 面试题
下面代码从性能上考虑,有什么问题
Apr 03 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
Aug 18 面试题
Java中各种基本数据类型的默认值都是什么
Dec 22 面试题
一组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中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php 定义404页面的实现代码
2012/11/19 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python异常处理总结
2014/08/15 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
详细分析python3的reduce函数
2017/12/05 Python
python读取和保存视频文件
2018/04/16 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python实现多进程通信实例分析
2019/09/01 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
如何使用Python调整图像大小
2020/09/26 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
css3进行截取替代js的substring
2013/09/02 HTML / CSS
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
2014厂务公开实施方案
2014/02/17 职场文书
2015年保送生自荐信
2015/03/24 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers
redis protocol通信协议及使用详解
2022/07/15 Redis