0

我有一个关于 SQL Server 的性能调整问题。

我有一个需要每个月运行的程序,它需要超过 24 小时才能完成。我需要调整这个程序,希望可以将运行时间减少到 12 小时或更短。

由于该程序不是我们开发的,我无法检查程序内容并对其进行修改。我所能做的就是打开 SQL 服务器分析器和活动监视器来跟踪和分析 sql 内容。我禁用了未使用的触发器并做了一些内务处理,但运行时间只减少了 1 小时。

发现网络I/O和缓冲区I/O偏高,不知道是什么原因和含义?

在此处输入图像描述

谁能告诉我这两个问题(网络 I/O 和黄油 I/O)的原因?对优化这个程序有什么建议吗?

谢谢!

4

2 回答 2

0
  • . 根据您的描述,我认为您的 I/O 是正常的,您的问题只是一对一的程序太慢了。
    解决方法: 1.
    打开SSMS
    2.找到程序 3.点击
    “显示预估执行计划”
    按钮 4.修复程序。
于 2016-02-19T03:19:23.707 回答
0

对我来说,您的应用程序似乎将大量数据读入应用程序,这可以解释这些数字。不过,我会检查以下内容:

  • 有阻塞吗?如果该过程只是在等待其他事情完成,那很容易浪费大量时间。根据您的统计数据,它看起来不像,但检查仍然很重要。

  • 表的索引是否正确?匹配搜索条件/连接的良好索引。如果有大量的键查找,覆盖索引可能会产生很大的不同。过多的索引/不必要的索引会减慢更新速度。

    您应该查看计划缓存以查看负责最多 I/O 或 CPU 使用率的语句

  • 对于最昂贵的操作,查询计划是否正确?您可能有过时的统计信息或其他优化问题。

  • 如果应用程序向数据库传输大量数据和/或从数据库传输大量数据,网络延迟和带宽是否足够好,或者是否会导致缓慢?运行应用程序的服务器是否存在瓶颈?

如果这些没有帮助,您可能应该发布一个包含详细信息的新问题:导致问题的 SQL 语句、相关表的表和索引结构以及行数和查询计划。

于 2016-02-19T18:32:39.227 回答