论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Mssql>>正文

通过SQL Server 2005索引视图提高性能

www.xker.com 作者: 来源:microsoft 加入日期:2006-3-5 13:58:43

【问题提问、论坛交流】

优化器匹配查询和索引视图(使之可在查询计划中使用)的功能经扩展包含:

新的表达式类型,位于查询或视图的 SELECT 列表或条件中,涉及:

标量表达式(比如 (a+b)/2)

标量聚合

标量 UDF

间隔归入优化器可检测索引视图定义中的间隔条件是否覆盖或“归入”查询中的间隔条件例如,优化器可确定“a>10 and a<20”覆盖“a>12 and a<18”

表达式等价某些表达式虽然在语法上有所不同,但最终的结果却相同,那么可以将其视为等价例如,“a=b and c<>10”与“10<>c and b=a”等价

另外,如果数据库中存在大量索引视图,那么对比在其上定义视图的表的编译性能,SQL Server 2005 通常要比 SQL Server 2000 快很多.

四、设计注意事项

数据库系统确定一组适当的索引可能很复杂如果在设计一般索引时需要考虑众多可能性,那么对架构添加索引视图会大幅提高设计和潜在结果的复杂性例如,索引视图可用于:

查询中引用的表的任何子集

该表子集的查询中的条件的任何子集

组合的列

聚合函数(比如:SUM)

应同时设计表和索引视图上的索引,以便从每个构造中获得最佳结果由于索引和索引视图对给定查询可能都很有用,因此分开设计会导致多余的建议,从而产生较高的存储和维护开销优化数据库的物理设计时,必须权衡一组不同的查询和数据库系统必须支持的更新的性能要求所以,对索引视图确定一项适当的物理设计是一种富有挑战性的任务,应尽可能使用数据库优化顾问 (Database Tuning Advisor)

如果为建立一个特殊的查询,查询优化器考虑了许多索引视图,那么查询优化成本就会显著增加查询优化器可能会考虑在查询中的表的任何子集上定义的所有索引视图在拒绝视图之前,必须调查每个视图以便进行替换这可能要花一些时间,尤其当给定查询存在数百个这类视图时

在其上创建一个唯一的聚集索引之前,视图必须满足几项要求在设计阶段,考虑这些要求:

视图以及视图中引用的所有表必须在相同的数据库中,并具有相同的所有者

索引视图不必包含查询中引用的供优化器使用的所有表

在视图上创建任何其他的索引之前,必须先创建一个唯一的聚集索引

在创建基表、视图和索引时,以及基表和视图中的数据被修改时,必须正确设置某些 SET 选项(在本文档后面所有详述)此外,除非这些 SET 选项正确无误,否则查询优化器不会考虑索引视图

必须使用架构绑定创建视图,并且还必须通过 SCHEMABINDING 选项创建该视图中引用的任何用户定义的函数

需要额外的磁盘空间来保存索引视图所定义的数据

设计方针

设计索引视图时考虑这些指导方针:

设计可供几个查询或多项操作使用的索引视图

例如,包含列的 SUM 和 COUNT_BIG 的索引视图可供包含函数 SUM、COUNT、COUNT_BIG 或 AVG 的查询使用查询的速度会更快,因为只需对视图中少量的行进行检索,而不必检索基表中所有的行,而且执行 AVG 函数所需的一部分计算已经完成

使索引键保持简洁

通过在索引键中尽可能使用最少的列和字节,可对索引视图的列实现更高效的访问,因为索引视图的列更窄,键比较的速度较更宽的键快一些另外,在索引视图上定义的每个非聚集索引中,聚集索引键都被用作行定位器较大的索引键的成本随视图上非聚集索引的数量成比例增长

考虑最终索引视图的大小

对于纯聚合,如果索引视图的大小与原始表的大小不相上下,可能就不会实现巨大的性能改善

设计多个较小的索引视图来局部加速过程

可能无法总对整个查询设计一个索引视图如要怎么做,考虑创建若干个索引视图,各执行部分查询

考虑这几个例子:

经常执行的查询会在一个数据库中聚合数据,并在另一个数据库中聚合数据,然后再联接结果因为索引视图无法从多个数据库引用表,所以用户不能设计一个视图来执行整个过程但是,可以在每个数据库中创建一个索引视图来进行各个数据库的聚合操作如果优化器可匹配索引视图和现有的查询,那么至少聚合处理的速度会更快,同时不必对现有的查询进行重新编码虽然联接处理不会加快,但整个查询将变快,因为其使用存储在索引视图中的聚合

经常执行的查询聚合来自几个表的数据,然后使用 UNION 合并结果索引视图不支持 UNION可设计若干个视图来执行每个聚合操作而后,优化器可选择索引视图来加快查询,而不必对查询进行重新编码虽然未改进 UNION 处理,但改善了各个聚合过程

本新闻共8页,当前在第4页  1  2  3  4  5  6  7  8  

编辑:xker.com

上一篇:安装SQL Server 2005中的AdventureWorks数据库
下一篇:SQL Server 2005 数据转换服务的常见设计问题

关闭窗口】【技术交流】【收藏此页
相关文章
·保护SQL Server 2005 Express Editio·SQL Server 2005生成直方图简介·SQL Server2005 Analysis服务实践之起
·Windows 服务器系统通用引擎路线图·ASP中调用存储过程、语法、写法-sql·SQL Server性能分析参数
·SQL Server溢出新方法!肉鸡不用愁!·用VB备份和恢复SQL Server数据库的方·SQL Server的几个安全问题个个谈(上
·SQL Server的几个安全问题个个谈(下·SQL 数据库表的修改·用户和安全性管理--SQL Server 的登录
·管理SQL Server 登录·SQL Server 安全性管理的途径·SQL 数据库备份
推荐文章 最新文章 热门文章
·拒绝提示窗口 让操作自动赶走网络烦恼
·视频格式转换工具使用集锦
·通过SQL Server 2005索引视图提高性能
·SQL Server 2005新特性
·SOHO族安全建议-保证上传服务器安全
·服务器安全配置精华技巧
·缔造神话 十大怪招助你200%提升迅雷速
·有备无患 WinXP下软件数据大迁移
·流量牵引技术在防DOS攻击中的应用
·解决w3wp.exe内存占用问题
·IIS网站防盗链下载的解决方案
·怎样处理Java最终化的内存保留问题
·轮番上阵:Linux下查找漏洞的N种兵器
·毕业论文范文
·毕业论文格式
·SQL Server 2005 中的Multiple Activ
·使用SQL Server 2005中的CLR 集成(2)
·使用SQL Server 2005中的CLR 集成(1)
·保护SQL Server 2005 Express Editio
·在 SQL Server 2005 中查询表结构及索
·拒绝提示窗口 让操作自动赶走网络烦恼
·QQ表情终级大法让你比别人更炫
·新东方系列序列号(大全)
·豪杰超级解霸V9.2正版注册码
·QuickTime v7.0.4简体中文版注册码
·Protel 2006 简体中文版6.0安装序列号
·Visual Studio 2005安装序列号
·附加码在网络安全中的作用
·原来文件的时间属性也能修改
·VC和Delphi程序只运行一个实例的方法
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·系统优化 专题
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·求职简历封皮
·最经典的黑客入门教材
·ACDSee v8.0注册码
·应届毕业生求职信
·怎样查找对方的IP地址
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: