当前位置:首页 > 系统运维 > 正文内容

SQL Server视图索引与索引视图指南

a8116255316年前 (2010-07-19)系统运维8

以下的文章主要描述的是SQL Server视图索引(Indexed Views)与SQL Server数据库的索引视图指南,以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,希望在你今后的学习中会有所帮助。

SQL Server视图索引(Indexed Views):

文章分类:数据库

正如第27章所讲的那样,SQL Server2000允许你创建索引视图。一个索引的视图是任意在其上定义了聚集索引的视图。当一个CREATE INDEX语句在视图上执行时,视图的结果集在数据库中的组织和存储与具有聚集索引的数据表是一样的。

视图中数据表上的数据发生改变将会自动反映到视图中,也会以同样的方式数据表中的变化会反映到索引中。除了聚集索引,你可以在视图上创建其他非聚集索引来提哦共另外的查询性能。视图上的额外的索引可为查询优化器提供更多的选择。

在SQL Server2000的开发版和企业版中,当一个索引视图存在于一个表中,你可以在查询中直接访问视图,优化器将自动考虑使用视图的索引来提高查询性能,就像表中的索引来提高性能一样。即使一个查询没有直接在FROM子句中使用视图名字,查询优化器也将考虑使用索引视图。换句话,当一个查询可能从索引视图中获得好处,查询优化器会替换掉表上的索引,而使用索引视图来满足查询。

SQL Server 2000的所有版本都可以创建索引,但是只有开发版本和企业版将自动使用索引视图来优化查询,这一点很重要。在其他版本中,索引视图将不会用来提高查询性能,除非查询中明确指定视图并且“NOEXPAND”优化指示也被指定。没有NOEXPAND,SQL Server将扩展视图到视图所对应的表并且基于表中的索引进行优化。下面的例子展示了使用NOEXPAND 选项来强制SQL Server来使用视图索引。

Sql代码

Select * from sales_Qty_Rollup WITH (NOEXPAND)   Where stor_id between 'B914' and 'B999' SET ARITHABORT ON   Select * from sales_Qty_Rollup WITH (NOEXPAND)  Where stor_id between 'B914' and 'B999' SET ARITHABORT ON  

索引视图的确增加了负担并且可能使得SQL Server变得更复杂,因为需要比普通索引花费更多时间来维护。当索引所在的表被修改了,SQL Server不得不修改视图的结果集和视图中的索引。视图索引的范围可能比单个表要大些,特别是假如视图定义在几个大表上。

在修改中维护视图及其索引所需的负担所产生的负面影响要比从其获得好处要多些。因为这些额外的维护负担,只在那些获得好处超过其维护负担的视图上创建索引。

索引视图指南

在表数据相对静态的视图上创建索引。

将被多个查询使用的视图创建索引。

保持索引尽可能小,就像表索引一样,越小的索引,SQL Server访问数据越高效。

除了开发版和企业版之外,你将需要指定NOEXPAND指示符,否则索引视图将不会用来优化查询。

选择索引:查询VS 修改性能 | 评价索引的有效性(Evaluating Index Usefu ...

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22088.html

分享给朋友:

“SQL Server视图索引与索引视图指南” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...

windows 7为什么老掉线 windows 7使用迅雷或快车下载的时候老掉

windows 7为什么老掉线 windows 7使用迅雷或快车下载的时候老掉

经过几天的测试后发现,Windows 7用户反映的情况确实存在,但并没有达到“频繁”的情况。同时,也并非是迅雷或快车抢了带宽。(即便是抢了带宽,表现的形式也是页面打开慢,而非是掉线),寻找问题的原因过程中,我们认为是Windows 7系统对于网卡的电源管理的默认设置造成的。 下面,就以Window...

Ubuntu系统上挂载U盘和Windows分区问题的解决实例

Ubuntu系统上挂载U盘和Windows分区问题的解决实例

Ubuntu挂载U盘问题 复制代码代码如下: 老是说special device /dev/sdb1 does not exist,无比郁闷 复制代码代码如下:#fdisk /dev/sda 复制代码代码如下: 是有个 这个咚咚。。。。 复制代码代码如下: 最后: 复制代码代码如下:...