Skip to main content

用于故障排查的实用查询

以下列出一些实用查询,不分先后,可用于排查 ClickHouse 故障并了解当前发生的情况。 我们还提供了一篇很棒的博客,介绍了一些监控 ClickHouse 的关键查询

查看哪些设置已偏离默认值

查看所有表的大小

返回结果如下:

表的行数和日均大小

各列的压缩率以及内存中主索引的大小

你可以按列查看数据的压缩率。此查询还会返回主索引在内存中的大小——这一点很重要,因为主索引必须能放入内存。

最近 10 分钟内客户端发送的查询数

你可以根据需要在 toIntervalMinute(10) 函数中调大或调小时间间隔:

各分区中的 parts 数量

查找运行时间较长的查询

这有助于找出卡住不动的查询:
使用运行最慢的查询的 query id,我们可以获取有助于调试的堆栈跟踪。

查看最新错误

响应如下:

占用 CPU 和内存最多的前 10 个查询

单个查询可能会以具有不同 query_id 值的多行形式记录——分布式次级查询和内部视图步骤的 is_initial_query = 0。请过滤 is_initial_query = 1 (或 query_id = initial_query_id) ,以查看查询提交时的原始形式,并注意 ClickHouse 分配的内部 query_id 值可能会包含类似 queryView... 的标签。有关详细信息,请参阅 query_log 参考

我的投影占用了多少磁盘空间

显示各数据库的磁盘存储、parts 数量、system.parts 中的行数和标记数

列出最近新写入的 parts 详细信息

这些详细信息包括其创建时间、大小、行数等:

集群级监控查询

以下查询可用于监控 ClickHouse 集群。它们使用 clusterAllReplicas() 汇总所有节点上的数据。
这些查询默认你的集群名称为 default。如果集群名称不同,请将 'default'default 替换为你的实际集群名称。

最近一小时内平均每分钟和每秒创建的新 parts

'your_table' 替换为要监控的实际表名。

CPU 和内存密集型查询 (集群级)

正在进行的合并及预计完成时间

此查询显示集群中当前正在执行的合并及其预计完成时间:

按归一化哈希统计的最常见查询

查找执行次数最多的查询 (有助于识别哪些查询需要优化) :

按事件类型和日期统计错误数

分析整个集群中的 part 创建错误:

按节点统计的表数量

查看集群各节点上的表分布:

查看异步插入操作

监控异步插入情况:

Parts 和合并分析

各表当前活跃的 parts

查看整个集群中每个表当前活跃的 parts 数量:

parts 过多的分区

找出 parts 可能过多的分区 (这可能会影响查询性能) :

已分离 parts

检查可能需要调查的已分离 parts:

系统信息查询

按节点查看集群级内存使用情况

监控各节点的内存使用情况:

在集群上执行查询

查看当前正在执行的查询:

已修改的非默认设置

查看哪些设置已偏离默认值:

复制队列状态

对于复制表,请查看复制队列:
最后修改于 2026年7月3日