【问题标题】:SQL Profiler CPU / duration unitsSQL Profiler CPU/持续时间单位
【发布时间】:2009-06-10 16:12:00
【问题描述】:

分析器中 SQL Server 跟踪的输出包含 CPU 和 Duration 列(以及其他列)。这些值的单位是什么?

【问题讨论】:

    标签: sql-server-profiler


    【解决方案1】:

    CPU 以毫秒为单位。 在 sql server 2005 及更高版本中,持续时间在保存到文件或表时以微秒为单位,在用户界面中以毫秒为单位。在 sqlserver 2000 中,它总是以毫秒为单位。来自MSDN

    用户 jerryhung 在评论中给出了更准确的版本特定信息:

    从 SQL Server 2005 开始,服务器以微秒为单位报告事件的持续时间(百万分之一,或 10-6 秒)和事件使用的 CPU 时间量(以毫秒为单位) (千分之一,或 10-3 秒)。在 SQL Server 2000 中,服务器以毫秒为单位报告持续时间和 CPU 时间。在 SQL Server 2005 及更高版本中,SQL Server Profiler 图形用户界面默认以毫秒为单位显示 Duration 列,但是当将跟踪保存到文件或数据库表时,Duration 列的值以微秒为单位写入。

    【讨论】:

    • 谢谢 - 它实际上是我正在查看的 SQL2000 日志,链接也回答了以毫秒为单位的报告。
    • 从 SQL Server 2005 开始,服务器以微秒(百万分之一或 10-6 秒)为单位报告事件的持续时间以及事件使用的 CPU 时间量(以毫秒为单位)(千分之一,或 10-3 秒)。在 SQL Server 2000 中,服务器以毫秒为单位报告持续时间和 CPU 时间。在 SQL Server 2005 及更高版本中,SQL Server Profiler 图形用户界面默认以毫秒为单位显示 Duration 列,但是当将跟踪保存到文件或数据库表时,Duration 列的值以微秒为单位写入。
    • 这个答案可以编辑清楚吗?如果您指的是 Profiler 中的列,则原始答案(标记为正确)不正确,因为如 jerryhung 评论所示,它实际上显示为毫秒。
    • 应该注意,在 Analysis Services 上运行 Profiler 跟踪时,持续时间始终为毫秒(即使保存到表后也是如此)。这对我来说并不是很明显,文档也不清楚,所以我亲自验证了它。这里有一些文档。 docs.microsoft.com/en-us/analysis-services/trace-events/…
    【解决方案2】:

    根据documentation(对于 SQL Server Profiler 2016),持续时间列的默认单位是毫秒。

    持续时间 列中显示值(以微秒为单位) 在跟踪的 Duration 数据列中显示以微秒为单位的值。默认情况下,持续时间列以毫​​秒为单位显示值。

    它可以在常规选项中更改为微秒: 工具->选项

    在旧版本的 DBMS 上使用 2016 分析器没有任何问题。

    【讨论】:

      【解决方案3】:

      我在 SQL Server 2017 中发现,持续时间在 Profiler 视图中显示为毫秒,但当我导出到表时,它以微秒显示。一开始有点混乱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        相关资源
        最近更新 更多