SQL Server 2005对比SQL Server 2000的性能优势
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全文目录可以备份/还原
分离/附加(attach/detach db)
填充全文索引:100倍于SQL Server 2000的速度(依赖于数 据) 全文查询:一般情况下快30-50%
索引视图查询性能的提高 更聪明的连接(join)处理:
R.x = S.x and S.x > 10 暗示了 R.x = S.x and S.x > 10 and R.x > 10
帮助性能调优 sys.dm_exec_query_stats
找到平均最耗时的query
sys.dm_db_file_space_usage sys.dm_db_session_space_usage
分析tempdb空间的使用
SQL Server 2005 对现有应用的某些性能有所提高, 而且更加易于管理
ALTER DATABASE dbname SET AUTO_UPDATE_STATISTICS_ASYNC ON
执行计划使用了过期的统计信息,会导致后台自动 更新统计信息 执行计划不会停顿,但是会使用旧的统计信息
运行UPDATE STATISTICS会影响当前所有用户表 和系统表,SQL2000和SQL2005都是如此 在SQL2005里面,会自动忽略自从上次创建或更新 统计信息以来没有修改过的表和索引
对字符串摘要的维护– 新的统计信息 大规模的重编译 含有大于8K行的表 大量使用触发器的应用
数据库维护操作(DMO)
DBCCs, Backups, Indexes
诊断与troubleshooting
DAC, DMVs, XML Plans
全文检索会更快 程序并发性能有很大提高(RCSI) 异步请求提高了分布式查询的性能 改善了以下应用程序的可扩展性
全面检测备份的可靠性 执行时间可能延长
Baidu Nhomakorabea
Checkpoint
不断自我调整,快速且不影响前台操作 可中断的
快速恢复
在Undo阶段数据库就可用 仅企业版可用
可提交-读-快照隔离
Read-committed-snapshot-isolation 大多数应用使用系统缺省:read-committed isolation 对大多数应用有帮助 需要数据库设置 READ_COMMITTED_SNAPSHOT 提高了并发性和可收缩性,减少了死锁 提高程序的可预见性(predictability)
Page Checksum 在新数据库上默认打开
提高可靠性
快速数据文件初始化
不需要全部用0填充空间 需要给服务帐号提供SE_MANAGE_VOLUME_NAME的 权限 需要Windows XP / 2003 对CREATE DATABASE , ALTER DATABASE, RESTORE, 文件增长性能有明显提升
DBCC SHRINK*, DBCC INDEXDEFRAG, ALTER INDEX REORGANIZE
DBCC CHECK*, DBCC SHRINK* 的进程报告
长时间运行的CHECK*, SHRINK* 操作会记录在 sys.dm_exec_requests中
tempdb 的可伸缩性得到了增强,支持更大的工作 量
缓存临时表和表变量(@t, #t) 改善了分配页(allocation page)的访问协议 减少tempdb日志产生的数量 对表中最初64KB更有效的分配算法
什么是分配页?
帮助空间管理的磁盘页(disk page)
可以同时备份数据和日志
Log Shipping 的日志备份不会被数据备份所阻塞
RESTORE Verifyonly
你是否知道SQL Server 2005还有很多的改进, 你不需要修改你的程序就可以从中受益?
在下面将会介绍其中一些改进之处,我们可以将其 分为两类
你不需要做任何修改
如 执行DBCC命令
需要改变服务器或者数据库的设置
如统计的自动异步更新
全文检索性能提升,并且有更大的可扩展性 更多读并发操作的应用 异步请求加快了分布式查询的性能 应用的可扩展性得到进一步提升:
DAT342 SQL Server 2005对比 SQL Server 2000的性能优势
吕科 SQL Server 资深顾问 郝雪莹 微软(中国)有限公司
我们已经知道SQL Server 2005增加了很多的新 特性,可以提高性能,如
数据库镜像,分区表,CLR,Service Broker, VARCHAR(MAX),XML 数据类型等 但是,你必须修改或者重新编写你的代码才能够获得这些 好处
全文检索,查询的优化 编译,统计信息 查询的执行 数据库可靠性检查 存储引擎 SQL Server的内部操作系统
1. SQL Server 2005 Technet http://www.microsoft.com/technet/prodtechnol/sql
2. SQL Server 2005 网上实验室 http://msdn.microsoft.com/vstudio/tryit/hosted/sql 3. SQL社区 http://www.microsoft.com/technet/prodtechnol/sql/ community/default.mspx 4. 中文 SQL Server 主页: http://www.microsoft.com/china/sql
内部客户报告说运行时间从SQL2000 的几小时降低到的 几分钟 得到的好处要依赖于忽略的表和索引的数目和大小
能够缓存动态对象的执行计划
在SQL2000里面,如果执行计划关系到动态对象,如表 变量、触发器等,计划就不会被缓存 SQL2005能缓存这些计划,避免了每次的重编译
分布式查询能够异步执行 SQL事件探查器能够展现更多的信息
Online 建索引
建索引的同时允许 INSERT, DELETE, UPDATE, SELECT 比offline要慢 考虑增加tempdb的size
锁的内存更NUMA-aware 锁的分区
把单个的锁资源划分为多个锁资源,每个CPU一个 NL, Sch-S, IS, IU, IX模式的锁可以被单个CPU获取 S, U, X, SCH-M模式的锁必须被所有的CPU获取 在16个CPU以上的系统,分区会被默认打开
如分布式查询追踪和死锁通知
重建索引的操作相比SQL2000提升了性能的伸缩性 (offline)
触发器执行的更好
优于访问日志记录 避免了日志扫描(经常成为瓶颈) 在多重连接的情况下避免了重复扫描 更快,在高端系统上伸缩性更好
考虑增加tempdb的size
DBCC CHECK*使用数据库快照以避免锁定 检查更加彻底 减少图像和文件占用的存储空间
数学运算查询的化简
如:a>3 and a>5 可以化简为a>5
语句级别的重编译
SQL 2000是对整个批处理和存储过程的重编译
批处理(存储过程)
语句1 语句2
为何要重编译
表格里大量的数据更新(insert, update, delete) 统计信息更新 (update statistics)
在OLTP系统中,统计信息的自动更新会导致一个 可察觉的停顿 解决方案:异步更新
答惑解疑
感谢您参与此会场!
您的意见与建议对我们非常重要。 请您填写反馈表。
2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
SQL2000重建和删除聚集索引会导致非聚集索引的 重建
如果聚集索引不是唯一的
SQL2005不再重建,缩短大量时间
我们保留了唯一标志以保证索引的正确
唯一标志(uniquifier) :自动添加的隐藏列
判断indroot 可以知道非聚集索引是否重建
Defrag提高索引页的顺序性和连续性。
(a, 1) – (b, 2) – (c, 3) SQL2005的速度有显著提高。
有大量的重编译的程序 大量使用触发器的程序
数据库的维护操作
DBCC,备份,索引
对问题的诊断和解决
DAC, DMVs, XML Plans
全文检索 查询的统计与优化 编译与查询计划的共享 统计信息 锁定 查询的执行 数据库可靠性检查 存储引擎 复制 连接
全文检索可以具有多个实例
更易于管理 全文检索同其它实例和产品隔离开来