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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
如何使用PHP session
Apr 21 面试题
什么是接口(Interface)?
Feb 01 面试题
如何设置Java的运行环境
Apr 05 面试题
简述synchronized和java.util.concurrent.locks.Lock的异同
Dec 08 面试题
Oracle的内存结构(Memory structures)
Jun 10 面试题
如何估计一张表的大小(假设该表中有1万条数据)
Mar 27 面试题
西部世纪面试题
Dec 05 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
介绍一下except的用法和作用
Jan 22 面试题
什么时候需要进行强制类型转换
Sep 03 面试题
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
Feb 16 面试题
与UNIX有关的几个名词
Sep 17 面试题
一组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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php5新改动之短标记启用方法
2008/09/11 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
python开发之str.format()用法实例分析
2016/02/22 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
年终奖发放方案
2014/06/02 职场文书
小学社团活动总结
2014/06/27 职场文书
小学安全汇报材料
2014/08/14 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers