【问题标题】:What tools are available to test SQL statement performance?有哪些工具可用于测试 SQL 语句的性能?
【发布时间】:2010-12-06 01:01:50
【问题描述】:

在对性能的永无止境的追求(以及我自己的硬伤经验)中,我学到了一些可能会降低 SQL 语句性能的东西。

强迫性子查询障碍
进行疯狂的类型转换(并将它们嵌套到遗忘中)
Group By 对上述疯狂类型转换的聚合函数
fldID 在哪里(从我的 5 百万记录表中选择所有内容)

我通常使用 MSSQL。有哪些工具可用于测试 SQL 语句的性能?这些工具是否内置并特定于每种类型的数据库服务器?或者有没有通用的工具?

【问题讨论】:

  • 你为了体验而大打出手?还是您的体验蓬勃发展 米奇的回答 +1。

标签: sql sql-server performance performance-testing


【解决方案1】:

我主要只使用 Profiler 和执行计划查看器

【讨论】:

  • 几乎所有你需要的,永远,个人查询
【解决方案2】:

SQL Profiler(内置):Monitoring with SQL Profiler

SQL Benchmark Pro(商业)

SQL Server 2008 有新的Data Collector

SQL Server 2005(更高版本)缺少索引动态管理视图 (DMV),这可能非常有用(但仅适用于当前在计划缓存中的查询计划):About the Missing Indexes Feature

还有一个 SQL Server Database Engine Tuning Advisor,它做了一个合理的工作(只是不要实现它建议的一切!)

【讨论】:

  • 谢谢,这让我开始了。这涵盖了 MSSQL 的角度,是否有可用于 MySQL 或 Oracle 的通用工具?还是那些有自己的工具?
【解决方案3】:

MSSQL 有一个数据库调优顾问,它通常会根据调优期间运行的常见查询为表推荐索引,但它不会为您重写查询。

在我看来,经验和实验是编写好的 SQL 查询的最佳工具。

【讨论】:

    【解决方案4】:

    在 mysql 中(也可能在其他数据库中)您可以EXPLAIN 您的查询以查看数据库服务器对它的看法。这通常用于决定应该创建哪些索引。而且这个是内置的,所以你可以在不安装额外软件的情况下使用它。

    【讨论】:

      【解决方案5】:

      Adam Machanic 有一个名为SqlQueryStress 的简单工具,它可能很有用。它旨在用于“针对单个查询运行快速性能测试,以测试想法或验证更改”。

      【讨论】:

      • Adam 的工具真的很棒。我用过它,发现它对调优我的数据库很有帮助。
      【解决方案6】:

      Execution Plans 是调试查询性能问题时首先要查看的内容之一。执行计划将告诉您查询的每个部分大致花费了多少时间,并可用于快速确定您是否缺少索引或是否有昂贵的连接或循环。

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多