分析器中 SQL Server 跟踪的输出包含 CPU 和 Duration 列(以及其他列)。这些值的单位是什么?
3 回答
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 列的值以微秒为单位写入。
根据文档(对于 SQL Server Profiler 2016),持续时间列的默认单位是毫秒。
以微秒为单位在持续时间列中显示值 在跟踪的持续时间数据列中显示以微秒为单位的值。默认情况下,持续时间列以毫秒为单位显示值。
可以在General Options中改为微秒:Tools->Options
在旧版本的 DBMS 上使用 2016 分析器没有任何问题。
我在 SQL Server 2017 中发现,持续时间在 Profiler 视图中显示为毫秒,但当我导出到表时,它以微秒显示。一开始有点混乱。