81

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

4

3 回答 3

98

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 列的值以微秒为单位写入。

于 2009-06-10T16:33:09.457 回答
4

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

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

可以在General Options中改为微秒:Tools->Options

在此处输入图像描述

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

于 2017-02-16T16:43:31.647 回答
1

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

于 2019-10-11T08:51:09.283 回答