跳转到主要内容
你可以使用本章介绍的函数来查看 ELFDWARF 的内部信息,以进行查询性能分析。
这些函数速度较慢,并且可能带来安全风险。
要使内部信息函数正常工作:
  • 安装 clickhouse-common-static-dbg 软件包。
  • allow_introspection_functions 设置为 1。 出于安全原因,默认情况下内部信息函数处于禁用状态。
ClickHouse 会将分析器报告保存到 trace_log 系统表中。请确保该表和分析器均已正确配置。

addressToLine

引入版本:v20.1.0 将 ClickHouse 服务器进程中的虚拟内存地址转换为 ClickHouse 源代码中的文件名和行号。
此函数速度较慢,并且可能带来安全风险。
要启用此内部信息函数: 语法
参数
  • address_of_binary_instruction — 运行中进程内指令的地址。UInt64
返回值 返回源代码文件名和行号,二者以冒号分隔,例如 /build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:199。如果找不到调试信息,则返回二进制文件名;如果地址无效,则返回空字符串。String 示例 trace_log 系统表中选取第一条字符串
Query
Response
获取单个地址的源代码文件名和行号
Query
Response
将该函数应用于整个调用栈跟踪
Query
Response

addressToLineWithInlines

版本引入:v22.2.0 addressToLine 类似,但会返回一个包含所有内联函数的 Array。 因此,它比 addressToLine 更慢。 要启用此内部信息函数: 语法
参数
  • address_of_binary_instruction — 运行中进程内某条指令的地址。UInt64
返回值 返回一个数组:第一个元素是以冒号分隔的源代码文件名和行号;第二、第三等后续元素列出内联函数的源代码文件名、行号和函数名。如果找不到调试信息,则返回仅包含一个元素的数组,该元素为二进制文件名;如果地址无效,则返回空数组。Array(String) 示例 将该函数应用到某个地址
Query
Response
将该函数应用到整个调用栈中
Query
Response

addressToSymbol

引入版本:v20.1.0 将 ClickHouse 服务器进程内部的虚拟内存地址转换为 ClickHouse 目标文件中的符号。 语法
参数
  • address_of_binary_instruction — 运行中进程中指令的地址。UInt64
返回值 返回 ClickHouse 目标文件中的符号;如果地址无效,则返回空字符串。String 示例 trace_log 系统表中查询第一条字符串
Query
Response
获取单个地址对应的符号
Query
Response
将该函数应用于整个调用栈
Query
Response

demangle

引入版本:v20.1.0 将符号转换为 C++ 函数名。 该符号通常由 addressToSymbol 函数返回。 语法
参数
  • symbol — 对象文件中的符号。String
返回值 返回 C++ 函数名称;如果该符号无效,则返回空字符串。String 示例 trace_log 系统表中选取第一个字符串
Query
Response
获取单个地址对应的函数名
Query
Response
将该函数应用于整个调用栈
Query
Response

isMergeTreePartCoveredBy

引入版本:v25.6.0 用于检查第一个参数中的分片是否被第二个参数中的分片覆盖的函数。 语法
参数
  • nested_part — 预期的嵌套分片名称。String
  • covering_part — 预期的覆盖分片名称。String
返回值 如果存在覆盖关系,则返回 1;否则返回 0UInt8 示例 基本示例
Query
Response

logTrace

引入版本:v20.12.0 在服务器日志中为每个 记录一条 trace 日志消息。 语法
参数
  • message — 输出到服务器日志中的消息。const String
返回值 始终返回 0UInt8 示例 基础示例
Query
Response

mergeTreePartInfo

引入版本:v25.6.0 用于从 MergeTree 分片名称中提取有用值的函数。 语法
参数
  • part_name — 要解包的分片名称。String
返回值 返回一个包含以下子列的 Tuple:partition_idmin_blockmax_blocklevelmutationTuple 示例 基础示例
Query
Response

tid

引入版本:v20.12.0 返回处理当前的线程 ID。 语法
参数
  • 无。
返回值 返回当前线程 ID。UInt64 示例 使用示例
Query
Response
最后修改于 2026年7月2日