网站大量收购独家精品文档,联系QQ:2885784924

数据库性能优化V2.docxVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库性能优化V2

北京圣特尔科技发展有限公司 必威体育官网网址级别:秘密(内部提供打印稿) 数据库性能优化 课程目标 理解性能优化的误区 了解性能优化的过程 写出优质的SQL语句 学习大纲: SQL查询性能调整 系统性能分析 SQL查询性能分析 索引分析(主要优化方式) SQL语句优化(重点优化方式) 第一节:学习的目标 1、识别有问题的SQL查询 2、分析查询执行计划 3、评估当前索引的有效性 4、避免书签查找 5、评估当前统计的有效性 6、分析和解决碎片 7、优化执行计划缓冲 8、分析和避免存储过程重编译 9、最小化阻塞和死锁 10、分析游标使用的有效性 11、应用性能调整过程、工具 和优化技术以优化SQL工作负荷 SQL性能杀手 低质量的索引 不精确的统计 过多的阻塞和死锁 不基于数据集的操作,通过是T-SQL游标 低质量的查询设计 低质量的数据库设计 过多的碎片 不可重用的执行计划 低质量的执行计划,通常是因为参数嗅探所致(parameter sniffing) 执行计划频繁重编译 游标的错误使用 数据库日志的错误配置 过多使用或错误配置tempdb SQL性能杀手 低质量的索引 低质量的索引通常是我们最大的性能杀手,对于一个缺乏正确索引的查询语句,SQL SERVER 必须在执行查询时读取和处理非常多的数据,这导致磁盘、内存和CPU上有很大的压力,很明显的就增加了查询执行时间,从而导致过多的阻塞和死锁。后面的讲解中我们会一一涉及到。 虽然这些是由DBA来做的,但我们作为精通SQL的开发人员,一定要对此引起高度的重视。 不精确的统计 数据库不能精确的定位数据,那可以想象SQL优化器就不能精确的估算出查询影响的行数。 那就没达到让数据库查询的效果。 过多的阻塞和死锁 SQL SERVER 完全兼容 CAID(原子性、一致性、隔离性,持续性),所以数据库引擎确保并发和事务被正确的隔离, 默认情况下,一个事务所看见的数据是另一个事务修改之前或另外一个事务完成之后的状态,它不会看到一个中间状态。 因为这种隔离性,当多个事务尝试以一种不兼容的方法并发访问公用资源时,数据库中就发生阻塞,当两个资源尝试升级或扩展加锁的并且与另外一个冲突时,就发生我们学说的死锁了。 所以事务和并发是我们必须考虑的问题 不基于数据集的操作,通过是T-SQL游标 这是SQL 的精髓。必须掌握此思想。 低质量的查询设计 一般是没有正确使用索引,或返回了无用的行。 低质量的数据库设计 设计数据库不能太规范也不能太不规范,即根据行业需求 使用范式,提高检索性能和减少阻塞。 过多的碎片 由于数据库的增删改操作导致碎片产生。可以用DMV中 sys.dm_db_index_physical_stats或dbcc showcontig 检查。 不可重用的执行计划 主要是讲解SQL优化器的内核来优化语法使其重用 低质量的执行计划,通常是因为参数嗅探所致(parameter sniffing) 高效的存储过程是一次性编译并可多次重用的,低质量的就是每次都被解析器来解析,增加服务器的时间成本。 执行计划频繁重编译 (同上) 游标的错误使用 一行一行执行语句了。没有使用集合化思想 数据库日志的错误配置 建议数据库文件和日志文件放在不同的硬盘上。 过多使用或错误配置tempdb 任何SQL SERVER 实例都只有一个tempdb。因为涉及到用户对象(如临时表及表变量)、系统(如游标或用语连接的hash表)的操作,以及排序和执行版本控制等操作都使用tempdb数据库,所以tempdb可能变成一个瓶颈,所以这些操作都可能使用的操作都有可能导致tempdb中的空间、I/O和争用问题。 系统性能分析 性能监控工具[后面细讲] 动态管理视图DMV 和动态管理函数 DMF 如: SELECT * FROM SYS.DM_OS_PERFORMANCE_COUNTERS WHERE conter_name=Logins/sec SELECT * FROM sys.dm_os_wait_stats 硬件资源瓶颈 IO 内存 处理器 网络。 用这个 即可定位 sys.dm_os_wait_stats 内存修改方法: use master exec sp_configure show advanced option,1 RECONFIGURE exec sp_configure min server memory (MB),100 exec sp_configure max server memory (MB),

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档