- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库性能概要规范
数据库性能概要规范
N
Document Information
Last Updated 11/19/05
File name: 数据库性能概要规范.doc
Author Information
Author David Dong
Group MIS
目录
1 目的 5
2 Performance Audit Checklist 5
3 常用的数据库优化工具 6
4 性能调整 6
4.1 TSQL 6
4.1.1 不要访问多于你需要的数据 6
4.1.2 所有者.对象名(objectownername.objectname) 6
4.1.3 Union Union All 6
4.1.4 Union Jion 8
4.1.5 Distinct 9
4.1.6 TOP N 10
4.1.7 In And Exist 11
4.1.8 In and Between 11
4.1.9 Like 11
4.1.10 OR 12
4.1.11 Order by/ sorting 12
4.1.12 Exist and count(*) 13
4.1.13 使用Case 14
4.1.14 Null Vs NotNull 15
4.1.15 Bit 15
4.1.16 字符串操作 15
4.1.17 在Where语句中存在冗余条件 15
4.1.18 在WHERE子句中的列上使用函数 16
4.1.19 避免在WHERE中使用no- sargable 16
4.1.20 避免使用游标 17
4.1.21 使用存储过程 25
4.1.22 不要包括不做任何事情的代码. 26
4.1.23 sp_? 26
4.1.24 CHECKSUM索引 26
4.1.25 索引提示(Index hint) 27
4.2 事务和死锁 27
4.2.1 Transaction 27
4.2.2 Complex transaction 28
4.2.3 Deadlock 29
4.3 表操作 31
4.3.1 Avoid Table scan 31
4.3.2 SELECT INTO 31
4.3.3 Update 31
4.3.4 大批量更新,删除,插入数据 31
4.3.5 TempTable Derived Tables 32
4.3.6 有效的使用JOIN 35
4.3.7 父子表 35
4.3.8 关于统计信息(Statistics) 36
4.3.9 为列选择合适数据类型 37
5 参考资料 37
版本控制
修改历史
版本 日期 描述 修改者 DavidDong@
说明:
在不同的数据库环境中,相同的数据库性能设置技巧可能会有完全不同的表现结果,所以性能方面的技巧一般都是与特定的环境相关的,不能盲目的相信所谓的性能调整技巧,而在我们每次进行相关性能调整的过程中,我们也需要进行多种测试来达到最理想的效果。
Performance Audit Checklist
Transact-SQL Checklist Your Check 查询时不返回多余的数据(比如没有SELECT *) T-SQL语句中UNION 和 UNION ALL区别 SELECT DISTINCT T-SQL语句中Exist() 和 Count(*)区别 T-SQL语句中IN 和 EXISTS区别 Where语句中不存在no- sargable(IS NULL, , !=, !, !, NOT, NOT IN, NOT LIKE, 和 LIKE %500) WHERE子句中不存在数据类型的转换 WHERE语句中不存在对列进行函数操作 derived table替代 sp_作为前缀的存储过程 SET NOCOUNT ON dbo.objectname的形式来引用 JOIN操作进行了优化
Query Analyzer
Profiler
Index Wizard
System (Performance) Monitor
性能调整
这个听起来是多余的,但是确实是非常必要的,做起来也不大容易。其中包括不要返回给客户端不需要的列和行。比如在SELECT语句中不要使用SELECT *,否则会经常返回给客气端多于它们所需要的数据,这样可以有效减轻网络传输压力,减少不必要的I/O,以及减少内存耗费,并能够使查询优化器最优化我们的查询执行计划,从而减少潜在的性能问题。
所有者.对象名(objectownername.objectname)
建议所有表、视图和,加上的前缀。为什么使用前缀可以改
文档评论(0)