Performance SQL Server性能优化:减少存储过程执行时间还是卸载服务器?

Performance SQL Server性能优化:减少存储过程执行时间还是卸载服务器?,performance,sql-server-2008,Performance,Sql Server 2008,我们有一个提供酒店搜索的网络服务。性能方面存在一个问题:对服务的单个请求大约需要5000毫秒。几乎所有的时间都是通过执行存储过程在数据库中花费的。在请求期间,我们的服务器(mssql2008)消耗了约90%的处理器时间。当两个请求同时发出时,平均时间会增加,大约7000毫秒。当请求数量增加时,平均响应时间也会增加。我们每分钟有20-30个请求 考虑到目标是为服务提供稳定的响应时间,在这种情况下哪种优化是最好的: 1) 尽量减少存储过程的执行时间 2) 尝试找到卸载服务器的方法 从与预订网站打交道

我们有一个提供酒店搜索的网络服务。性能方面存在一个问题:对服务的单个请求大约需要5000毫秒。几乎所有的时间都是通过执行存储过程在数据库中花费的。在请求期间,我们的服务器(mssql2008)消耗了约90%的处理器时间。当两个请求同时发出时,平均时间会增加,大约7000毫秒。当请求数量增加时,平均响应时间也会增加。我们每分钟有20-30个请求

考虑到目标是为服务提供稳定的响应时间,在这种情况下哪种优化是最好的:

1) 尽量减少存储过程的执行时间

2) 尝试找到卸载服务器的方法

从与预订网站打交道的人那里听到消息很有趣

听到人们的声音很有趣 谁处理预订网站。谢谢

这与预订网站无关,您的存储过程编写得很糟糕,可能没有索引,您的查询可能不可搜索,并且每次都必须扫描表。你的统计数据是最新的吗

从SSM运行一些过程并查看执行计划


运行探查器也是一个好主意。您的页面预期寿命和缓冲区缓存命中率如何?请查看以获得这些数字

我认为您要做的第一件事是量化服务器上发生的事情

  • 使用SQL Server Profiler可以准确了解服务器上的活动
  • 确定哪些过程/SQL语句占用的资源最多
  • 确定消耗大量资源/耗时的高优先级SQL操作
  • 优先考虑
  • 修理
  • 现在,当我说“Fix”时,我的意思是您应该在SSMS中手动执行过程/语句-确保打开了“Show Execution Plan”


    查看消耗资源最多的部件的执行计划,然后找出如何纠正。您可能需要创建一个新索引,通过使用提示等方法重写SQL以提高效率。

    您没有提供解决问题的详细信息。一般来说,为了提高存储过程的性能,我将介绍:

    1) 使用基于集合的操作删除任何游标或循环
    2) 确保所有查询都使用索引和有效的执行计划(请使用
    将SHOWPLAN\u all设置为启用状态进行检查)
    3) 确保没有任何锁定或阻塞会减慢速度()

    没有更多关于细节的信息,很难提出任何建议

    几乎所有的时间都花在工作上 通过执行存储 程序


    应用程序正在调用多少个过程?他们是干什么的?是否涉及交易?程序是否重新编译每个调用?你有索引吗?统计数字是最新的吗?等等,等等。。。您需要提供更多信息,或者这里的任何帮助都只是一个猜测。

    创建索引以满足您的查询工作负载…建立索引,创建临时表的主键,尽可能使用表提示。公平地说,他们可能有正常的存储过程,并且服务器没有足够的容量。但我敢打赌糟糕的存储过程或糟糕的数据库设计(比如说使用EAV表)SqlNemage,最初的问题是关于策略,在实现此类系统时应该坚持哪种策略,但实际上,它得到了含蓄的回答:应该优化存储过程实际上,问题是关于策略:应该优化过程还是找到另一种方法来处理问题,它得到了含蓄的回答:应该优化过程良好的建议,在优化存储过程时,我通常会遵循一些指导原则