以下哪项参数用于控制单条SQL最大允许执行时长,防止慢SQL拖垮集群?()

以下哪项参数用于控制单条SQL最大允许执行时长,防止慢SQL拖垮集群?()

A. ob_query_timeout

B. ob_max_scan_rows

C. ob_cpu_max_limit

D. ob_sql_work_area_percentage

1 个赞

正确答案是:A. ob_query_timeout

详细解析:

在 OceanBase 中,针对 SQL 执行超时的控制机制如下:

  • :white_check_mark: 选项 A (ob_query_timeout) 正确
    参考材料明确指出,ob_query_timeout 用于设置 SQL 的最大执行时间,其单位为微秒(us),默认值为 10 秒(即 10000000 us)。当单条 SQL 的执行时间超过该阈值时,系统会主动终止该查询并报错(如 ERROR 4012: Timeout, query has reached the maximum query timeout ),从而有效防止慢 SQL 长时间占用资源拖垮集群。

  • :x: 选项 B (ob_max_scan_rows) 错误
    该参数通常用于限制 SQL 执行时允许扫描的最大行数,属于资源限制手段,而非基于时间维度的超时控制。

  • :x: 选项 C (ob_cpu_max_limit) 错误
    该参数主要用于限制租户或系统可使用的最大 CPU 资源配额,用于实现多租户间的资源隔离,与单条 SQL 的执行时长无关。

  • :x: 选项 D (ob_sql_work_area_percentage) 错误
    该参数用于控制租户内存中分配给 SQL 执行工作区(如排序、哈希连接等操作)的内存百分比,主要用于内存管理,防止内存溢出,不涉及执行时间的控制。