query_digest_time_threshold和slow_query_time_threshold参数咨询


麻烦问一下老师 这两个参数从功能上看都是记录超过一定时间的语句,好像没有什么区别,为什么要设定两个参数

写入的日志文件不同

@论坛小助手

根据文档库中的信息,query_digest_time_thresholdslow_query_time_threshold 确实都与记录超过一定时间的语句相关,但它们的功能和应用场景有所不同。以下是两者的具体区别和设定原因:


1. query_digest_time_threshold

  • 功能:
    用于设置请求执行时间的阈值,超过该阈值时,OBProxy 会将相关信息打印到 obproxy_digest.log 文件中。

    • 日志文件: obproxy_digest.log
    • 默认值: 100ms
    • 取值范围: [0s, 30d]
    • 是否需要重启 ODP 生效: 否
  • 应用场景:
    主要用于 OBProxy 层面的性能分析,帮助用户了解哪些查询在代理层面上耗时较长。这些日志可以用来优化客户端与 OBProxy 之间的交互性能。

  • 参考文档:
    根据片段标题 query_digest_time_threshold 的描述(如图片 OCR 提取内容和文档片段 10),此参数专注于 OBProxy 的日志记录。


2. slow_query_time_threshold

  • 功能:
    用于设置慢请求执行时间的阈值,超过该阈值时,OBProxy 会将相关信息打印到 obproxy_slow.log 文件中。

    • 日志文件: obproxy_slow.log
    • 默认值: 500ms
    • 取值范围: [0s, 30d]
    • 是否需要重启 ODP 生效: 否
  • 应用场景:
    主要用于标识慢查询,帮助用户定位和优化那些在数据库层面执行较慢的 SQL 语句。这些日志通常用于分析数据库内部的性能瓶颈。

  • 参考文档:
    根据片段标题 slow_query_time_threshold 的描述(如图片 OCR 提取内容和文档片段 1),此参数专注于慢查询的识别。


3. 为什么需要两个参数?

虽然两者都涉及时间阈值和日志记录,但它们的作用和关注点不同:

  • query_digest_time_threshold 更偏向于 OBProxy 层面的性能监控,记录的是代理层面上的请求耗时情况。
  • slow_query_time_threshold 更偏向于数据库层面的性能监控,记录的是数据库内部执行较慢的查询。

因此,这两个参数分别服务于不同的监控需求:

  1. OBProxy 层面: 如果希望了解客户端请求在代理层面上的耗时分布,可以使用 query_digest_time_threshold
  2. 数据库层面: 如果希望定位数据库内部执行较慢的 SQL 语句,可以使用 slow_query_time_threshold

4. 总结

  • query_digest_time_threshold: OBProxy 层面的日志记录,关注代理层面上的请求耗时。
  • slow_query_time_threshold: 数据库层面的日志记录,关注数据库内部的慢查询。

两者的设计是为了满足不同层次的性能分析需求,因此需要分开设定。如果仅关注某一层面的性能问题,可以选择性地调整其中一个参数即可。

检索到的文档如下:

  1. slow_query_time_threshold
  2. trace_log_slow_query_watermark
  3. ob_max_read_stale_time
  4. long_query_time
  5. observer_query_timeout_delta
  6. 备副本延迟阈值
  7. large_query_threshold
  8. V$OB_PARAMETERS
  9. query_digest_time_threshold
1 个赞

学习到了 :+1:

@辞霜 老师 按照实验手册的意思 digest这个参数使用定位是审计的

好像并不是ai小助手解释的定位不同层面的慢日志

相同的阈值 执行 select sleep(1) slow和digest日志都会记录

obproxy_digest .log 日志是 ODP 审计日志
query_digest_time_threshold 用于设置请求执行时间阈值,超过阈值即打印一条日志到 obproxy_digest.log 文件

如果培训材料和小助手回复不准确,以官方文档为准

好的 谢谢

写入日志文件区别