【问题标题】:Whats the best way to profile a sqlserver 2005 database for performance?分析 sql server 2005 数据库性能的最佳方法是什么?
【发布时间】:2010-09-18 13:55:45
【问题描述】:

您使用什么技术?您如何找出运行时间最长的作业?有没有办法找出违规的应用程序?

【问题讨论】:

    标签: sql-server optimization profiling


    【解决方案1】:

    在使用 SQL Server 2000 时,我使用 SSMS 或 SQL Profiler 中提供的数据库调整工具取得了很好的成功。

    关键是使用 GOOD 样本集,为 analsys 跟踪一部分 TRUE 生产工作负载,这将获得最佳的整体收益。

    【讨论】:

    • 感谢您的回答,它是 SQL Server 2005 - 但我相信数据库调整向导仍然存在(我已更新问题)
    • 是的,在这种情况下,只需使用 SSMS 工具下的数据库优化引擎顾问!
    【解决方案2】:

    我使用了几种不同的技术。

    如果您尝试优化特定查询,请使用查询分析器。使用其中的工具,例如显示执行计划等。

    对于您不确定哪个查询运行缓慢的情况,您可以使用的最强大的工具之一是 SQL Profiler。

    只需选择您要分析的数据库,然后让它完成它的工作。

    您需要让它运行相当长的时间(这取决于应用程序的流量),然后您可以将结果转储到表格中并开始分析它们。

    您将要查看具有大量读取或占用大量 CPU 时间等的查询。

    优化是一头熊,但要坚持下去,最重要的是,不要假设你知道瓶颈在哪里,找到它在哪里的证据并修复它。

    【讨论】:

      【解决方案3】:

      第 1 步: 安装SQL Server Performance Dashboard

      第二步: 利润。

      说真的,您确实想先看看那个仪表板。有关安装和使用它的更多信息,请访问 here 和/或 here

      【讨论】:

        【解决方案4】:

        我使用 SQL Server 附带的 SQL Profiler。我发现的大多数性能不佳的查询都没有使用大量 CPU,而是产生了大量的磁盘 IO。

        我倾向于在磁盘读取上放置过滤器,并寻找往往进行超过 20,000 次左右读取的查询。然后我会查看那些查询的执行计划,它通常会为您提供优化查询或相关表上的索引所需的信息。

        【讨论】:

          【解决方案5】:

          要识别有问题的查询启动 Profiler,请选择以下事件:

          • TSQL:批处理完成
          • TSQL:Stmt 已完成
          • SP:已完成
          • SP:Stmt 已完成

          过滤输出,例如通过

          • 持续时间 > x 毫秒(例如 100 毫秒,主要取决于您的需求和系统类型)
          • CPU > y ms
          • 读取 > r
          • 写入 > w

          取决于您要优化的内容。 一定要过滤足够多的输出,以免成千上万的数据行在您的窗口中滚动,因为这会影响您的服务器性能!

          它有助于将输出记录到数据库表中以便之后进行分析。 并行运行 Windows 系统监视器以查看 cpu 负载、磁盘 io 和一些 sql server 性能计数器也很有帮助。配置 sysmon 以将数据保存到文件中。

          您必须在数据库上获得生产典型查询负载和数据量才能使用分析器查看有意义的值。

          从分析器获得一些输出后,您可以停止分析。

          然后将存储的数据从分析表再次加载到分析器中,并使用 importmenu 从 systemmonitor 导入输出,分析器会将 sysmon 输出与您的 sql 分析器数据相关联。这是一个非常好的功能。

          在该视图中,您可以立即识别与您的内存、磁盘或 cpu 系统有关的引导瓶颈。

          当您确定了一些要省略的查询时,请转到查询分析器并查看执行计划并尝试省略索引使用和查询设计。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-08
            • 2010-09-18
            • 2012-08-06
            • 1970-01-01
            • 2010-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多