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


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

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

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

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

Tags in this post...

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
什么是Deployment descriptors;都有什么类型的部署描述符
Jul 28 面试题
VC++笔试题
Oct 13 面试题
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
Oct 06 面试题
聚网科技C++面试笔试题
Sep 01 面试题
为什么group by 和order by会使查询变慢
May 16 面试题
C#怎么让一个窗口居中显示?
Oct 20 面试题
const和static readonly区别
May 20 面试题
恒华伟业笔试面试题
Feb 26 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Jan 27 面试题
中间件的定义
Aug 09 面试题
Java程序员面试题
Jul 15 面试题
一组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新手用的Insert和Update语句构造类
2012/03/31 PHP
php实现水仙花数示例分享
2014/04/03 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
express express-session的使用小结
2018/12/12 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
Python常用数据分析模块原理解析
2020/07/20 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
写给妈妈的道歉信
2014/01/11 职场文书
调解书格式范本
2015/05/20 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
少年雷锋观后感
2015/06/10 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
宝塔更新Python及Flask项目的部署
2022/04/11 Python