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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
PHP面试题及答案一
Jun 18 面试题
Ibatis中如何提高SQL Map的性能
May 11 面试题
C语言中一个结构不能包含指向自己的指针吗
May 25 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
Oct 24 面试题
delegate与普通函数的区别
Jan 22 面试题
STP协议的主要用途是什么?为什么要用STP
Dec 20 面试题
网络安全方面的面试题
Nov 04 面试题
C#的几个面试问题
May 22 面试题
Python中pass语句的作用是什么
Jun 01 面试题
有abstract方法的类一定要用abstract修饰吗
Mar 14 面试题
静态变量和实例变量的区别
Jul 07 面试题
如何写出好的Java代码
Apr 25 面试题
一组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
WAF的正确bypass
2017/01/05 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue-router传参用法详解
2019/01/19 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python的UTC时间转换讲解
2019/02/26 Python
python匿名函数用法实例分析
2019/08/03 Python
python数组循环处理方法
2019/08/26 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
时尚圣经:The Fashion Bible
2019/03/03 全球购物
市政施工员自我鉴定
2014/01/15 职场文书
体育之星事迹材料
2014/05/11 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
Python中tqdm的使用和例子
2022/09/23 Python