首页 > 数据库技术 > Microsoft SQL Server > SQL查询性能调整
2014
07-25

SQL查询性能调整

SQL查询性能调整简单介绍:

  • 识别有问题的SQL查询;
  • 分析查询执行计划;
  • 评估当前索引的有效性;
  • 避免书签查找;
  • 评估当前统计的有效性;
  • 分析和解决碎片;
  • 优化执行计划缓冲;
  • 分析和避免存储过程重编译;
  • 最小化阻塞和死锁
  • 分析游标使用有效性
  • 应用性能调整过程,工具和优化技术以优化SQL工作负荷。

1.核心过程 – 在调整过程中,必须检查各种可能影响基于SQL Server的应用程序性能的硬件和软件因素。你应该在性能分析中问自己以下的问题:

  • 相同服务器上有没有运行其他的资源密集型应用? – 通过windows任务管理器监视是否有比SQL Server更占资源的应用
  • 硬件子系统是否能承受最大的工作负荷? – 配置适合的硬件(处理器、内存、硬盘和网络)
  • SQL Server是否被正确配置? – 一般建议采用默认配置(默认配置对绝大多数情况来说都是最优的)
  • SQL Server和数据库应用之间的数据库连接是否有效? – 根据应用程序和数据库的分布情况,应该使用不同的网络协议来降低网络开销。而且,在网络连接上的管理数据库连接的数据访问层可能效率不高。数据访问层技术或应用程序使用数据访问层的方法可能不是最优的。
  • 数据库设置是否支持最快的数据检索(对于可更新的数据库还有修改)? – 检查数据库设计、索引优化,应用程序可能因为构建的查询较差而变慢,这些查询可能不能使用索引,甚至索引本身布正确或丢失。
  • 由SQL查询组成的用户工作负载是否优化以减低SQL Server上的负载? – 可以通过SQL Server中的动态管理试图访问操作系统技术器来获得这些情况。
  • 在各种等待状态的测量中反映出哪个进程导致系统减慢? – 可以通过识别正在等待的进程和导致它等待的进程,获得速度下降的根源。
  • 工作负载是否支持最大的并发性? – 从运行缓慢的SQL查询和硬件资源上过高的压力,可以找到应对此负责的

2.迭代过程 – 性能调整是一个迭代过程:识别主要瓶颈,试图解决它们,测试修改后的效果,并返回到开始步骤,直到性能可接受。在应用解决方案时,应该遵循每次只做一处改动的原则。修改一般会影响系统的其他部分,所以必须重新评估每次修改对系统总体性能的影响。

    性能调整时永不会结束的过程:

    为复杂过程所采取的优化开销最大的查询步骤:

最后编辑:
作者:sleepyan
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!