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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
解释一下抽象方法和抽象类
Aug 27 面试题
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
Nov 09 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
Sep 16 面试题
某公司的.net工程师面试题笔试题
Nov 22 面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 面试题
在C#中如何实现多态
Jul 02 面试题
linux系统都有哪些运行级别
Apr 15 面试题
linux面试题参考答案(5)
Sep 01 面试题
外企测试工程师面试题
Feb 01 面试题
如何用JQuery进行表单验证
May 29 面试题
如何提高MySql的安全性
Jun 19 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
Dec 30 面试题
一组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和ACCESS写聊天室(四)
2006/10/09 PHP
我用php+mysql写的留言本
2006/10/09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python自动化之Ansible的安装教程
2019/06/13 Python
在django view中给form传入参数的例子
2019/07/19 Python
django连接oracle时setting 配置方法
2019/08/29 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python 递归相关知识总结
2021/03/03 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
函授大学生自我鉴定
2014/02/05 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
民事二审代理词
2015/05/25 职场文书
博士论文答辩开场白
2015/06/01 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android
vue实现在data里引入相对路径
2022/06/05 Vue.js
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android