SQL Profiler CPU/持续时间单位

发布于 2024-07-24 05:10:34 字数 58 浏览 3 评论 0原文

探查器中 SQL Server 跟踪的输出包含 CPU 和持续时间列(等等)。 这些值的单位是什么?

The output from a SQL Server trace in profiler contains the columns CPU and Duration (amongst others). What units are these values in?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一抹淡然 2024-07-31 05:10:35

这让我很困惑,这就是原因。

到 2023 年,我们有 2 种类似的方法来分析 SQL Server,两者都是内置的。 首先 - 打开 SSMS 工具窗口并选择 SQL Profiler。 这将打开一个分析器作为单独的应用程序。 第二种现代方式称为 XEvent Profiler,直接位于 SSMS 中 SSMS 对象资源管理器中所有其他组下:

XEvent Profiler

如果从工具菜单打开 SQL Profiler您将看到以毫秒为单位的持续时间(例如 1000 表示 1 秒)。

但是,如果您从对象资源管理器打开 XEvent Profiler,它会显示以微秒为单位的持续时间(例如 1000000 表示 1 秒)。

我希望这可以节省某人很多时间。

This confused me a lot and this is why.

In 2023 we have 2 similar ways to profile SQL Server, both are build-in. First - open SSMS Tools window and select SQL Profiler. This will open a profiler as a separate application. The second modern way called XEvent Profiler and located directly in SSMS under all other groups in SSMS Object Explorer:

XEvent Profiler

If you open SQL Profiler from the tools menu you will see Duration in milliseconds (for example 1000 means 1 second).

But if you open XEvent Profiler from Object Explorer it shows Duration in microseconds (for example 1000000 means 1 second).

I hope this can save someone a lot of time.

彼岸花似海 2024-07-31 05:10:34

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 图形用户界面默认以毫秒为单位显示“持续时间”列,但当将跟踪保存到文件或数据库表时,“持续时间”列值将以微秒为单位写入。

CPU is in milliseconds.
In sql server 2005 and later, duration is in microseconds when saved to a file or a table, and milliseconds in the user interface. In sqlserver 2000, it is always in milliseconds. From MSDN.

User jerryhung gives a more accurate version-specific information in a comment:

Beginning with SQL Server 2005, the server reports the duration of an event in microseconds (one millionth, or 10-6 of a second) and the amount of CPU time used by the event in milliseconds (one thousandth, or 10-3 of a second). In SQL Server 2000, the server reported both duration and CPU time in milliseconds. In SQL Server 2005 and later, the SQL Server Profiler graphical user interface displays the Duration column in milliseconds by default, but when a trace is saved to either a file or a database table, the Duration column value is written in microseconds.

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

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

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

在此处输入图像描述

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

According to the documentation (for SQL Server Profiler 2016) the default unit for the Duration column is milliseconds.

Show values in Duration column in microseconds
Displays the values in microseconds in the Duration data column of traces. By default, the Duration column displays values in milliseconds.

It can be changed to microseconds in the General Options:
Tools->Options

enter image description here

Nothing wrong with using 2016 profiler on older versions of the DBMS.

违心° 2024-07-31 05:10:34

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

I found in SQL Server 2017, that duration showed as milliseconds in the Profiler view, but when I exported to a table it showed in microseconds. A bit confusing at first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文