Optimize 会话所需的运行时间较长
如果您认定 Optimize 会话所需的运行时间过长,那么可以遵循以下提供的故障诊断步骤。
开始前
1.
确保在运行时未启用 Optimize|Debug|ExtraVerbose,因为此设置会导致运行缓慢。检查会话级的高级设置和配置属性。
2.
3.
4.
Optimize|Logging|loggingLevels 设置为 MEDIUM 或 LOW。检查会话级的高级设置和配置属性。
运行会话以生成用于故障诊断的清洁的日志
在遵循 开始前 中的步骤执行后,如果您的 Optimize 会话需要较长时间运行,那么您需要收集详细信息以进行分析。
运行会话以在启用 HIGH 或 ALL 设置时生成清洁的 Optimize 服务器日志。在会话运行过程中,请勿访问任何 Optimize 报告,因为此操作会将数据添加到日志,从而造成困扰。由于您要收集详细的日志数据,因此该会话所需的运行时间可能较长。在收集清洁的日志后,请记得将 Optimize|Logging|loggingLevels 重置为 MEDIUM 或 LOW。
当您有生成的日志时,您应检查两个事项:
*
*
如何检查访问数据库所用的时间量
通过使用您生成的清洁的日志,遵循以下步骤来了解 Optimize 为设置会话所需的数据而访问数据库所需的时间。
1.
Optimize 服务器日志中,搜索字符串:LRE 起始区块:0
2.
如果该值似乎太高,请查看构成日志部分(在 LRE 起始区块:0 前)的查询开始和结束的时间戳记,以标识耗时过长的查询。
3.
如何检查处理客户样本(区块)所用的时间量
通过使用您生成的清洁的日志,遵循以下步骤来了解 Optimize 需要多长时间来处理客户样本。
Optimize 服务器日志中,从与运行线程已终止相匹配的行的时间戳记中减去与 LRE 起始区块:0 相匹配的行的时间戳记。
此日志条目将告诉您在占用 CPU 最多的优化部分中所用的总时间量。如果此操作正占用成块的时间,那么您可以通过查看区块迭代来更好地了解目前的工作情况。
通过迭代执行以下步骤,可找到每个区块的最佳解决方案:
1.
2.
3.
Optimize 每次应用一个分数集,它将此计为一个区块迭代。在占用 CPU 最多的部分中所用的时间量与每个区块的平均迭代数大致成比例。