总进程时间PROCSQL,了解日志
Total process time PROC SQL, understanding the log
我想更好地了解时间日志以提高性能。
我的实际时间通常比 cpu 时间大得多。是否符合预期?
是磁盘访问造成的差异吗?内存操作是包含在CPU时间还是实时?
日志的其他行中是否有关于性能优化的有用信息?
一个例子:
NOTE: PROCEDURE SQL used (Total process time):
real time 9:06.00
user cpu time 1:36.79
system cpu time 19.11 seconds
memory 7463.31k
OS Memory 24628.00k
Timestamp 06/07/2018 12:45:31 PM
Page Faults 7
Page Reclaims 1566
Page Swaps 0
Voluntary Context Switches 370694
Involuntary Context Switches 36835
Block Input Operations 0
Block Output Operations 0
CPU 时间是进行了多少 CPU 处理 - 使用了多少 CPU 时钟周期。这是每个核心;如果使用多个内核(虚拟或物理),它可能大于实时。例如,CPU 密集型并使用并行处理的东西在您的机器上使用 4 个内核 2 分钟,实际时间为 2 分钟,CPU 时间可能高达 8 分钟。
实时是作业开始和作业结束之间的时钟时间。在 proc sql
的情况下,直到达到 quit
- 所以如果你不退出就让 proc sql
打开,真正的时间可能是你下一个 运行 一个过程。
很多时候,CPU 时间和实时之间的差异是磁盘 i/o 正如您所说 - 如果您正在通过网络或旋转磁盘读取,很可能是您的磁盘 i/o 将比您的 CPU 时间更长。
从内存中读取 "file" 不包括在 CPU 时间内,除非它涉及 CPU。
其他字段有助于诊断不同级别的性能问题。使用的内存量可能表明您的代码存在特定问题(如果它使用了大量内存,则可能是您做的事情效率低下)。
您可能想阅读一些关于 SQL 效率和优化的论文,例如 Kirk Lafler's - see in particular the _METHOD and _TREE discussion at the end. And of course the various ways to get more information are mentioned in the documentation,例如 STIMER 和 FEEDBACK。
我想更好地了解时间日志以提高性能。
我的实际时间通常比 cpu 时间大得多。是否符合预期?
是磁盘访问造成的差异吗?内存操作是包含在CPU时间还是实时?
日志的其他行中是否有关于性能优化的有用信息?
一个例子:
NOTE: PROCEDURE SQL used (Total process time):
real time 9:06.00
user cpu time 1:36.79
system cpu time 19.11 seconds
memory 7463.31k
OS Memory 24628.00k
Timestamp 06/07/2018 12:45:31 PM
Page Faults 7
Page Reclaims 1566
Page Swaps 0
Voluntary Context Switches 370694
Involuntary Context Switches 36835
Block Input Operations 0
Block Output Operations 0
CPU 时间是进行了多少 CPU 处理 - 使用了多少 CPU 时钟周期。这是每个核心;如果使用多个内核(虚拟或物理),它可能大于实时。例如,CPU 密集型并使用并行处理的东西在您的机器上使用 4 个内核 2 分钟,实际时间为 2 分钟,CPU 时间可能高达 8 分钟。
实时是作业开始和作业结束之间的时钟时间。在 proc sql
的情况下,直到达到 quit
- 所以如果你不退出就让 proc sql
打开,真正的时间可能是你下一个 运行 一个过程。
很多时候,CPU 时间和实时之间的差异是磁盘 i/o 正如您所说 - 如果您正在通过网络或旋转磁盘读取,很可能是您的磁盘 i/o 将比您的 CPU 时间更长。
从内存中读取 "file" 不包括在 CPU 时间内,除非它涉及 CPU。
其他字段有助于诊断不同级别的性能问题。使用的内存量可能表明您的代码存在特定问题(如果它使用了大量内存,则可能是您做的事情效率低下)。
您可能想阅读一些关于 SQL 效率和优化的论文,例如 Kirk Lafler's - see in particular the _METHOD and _TREE discussion at the end. And of course the various ways to get more information are mentioned in the documentation,例如 STIMER 和 FEEDBACK。