用途:分析 CockroachDB 表与索引的 range 分布、leaseholder 放置及 zone 配置合规性,全部通过 SQL 完成,无需 DB Console。
主要能力:识别 range 数量异常(碎片化)、range 大小不均、leaseholder 集中导致读热点、副本不足或不可用、高写入导致的 range 分裂,以及验证 zone 配置对放置的实际影响。提供按表统计 range 数、range 大小分析、leaseholder 分布、复制健康检查、zone 配置审计、每 GB range 数(碎片化)等诊断查询。
使用方式:需 SQL 连接集群,并具备 admin 角色或 ZONECONFIG 系统权限,可用 SHOW SYSTEM GRANTS FOR <username>; 检查。核心查询包括:SELECT table_name, index_name, COUNT(*) AS range_count FROM [SHOW RANGES FROM TABLE your_table_name] GROUP BY table_name, index_name ORDER BY range_count DESC; 以及 SHOW ZONE CONFIGURATIONS; 等。
限制与安全:WITH DETAILS 会按需计算 span_stats,带来高 CPU 与内存开销,可能超时;必须配合 LIMIT 并仅针对特定表,禁止对整个数据库或集群执行。基础 SHOW RANGES 与 SHOW ZONE CONFIGURATIONS 为元数据只读操作,生产安全。碎片化有时是负载分裂的正常结果,调整 range_max_bytes 需谨慎。默认 range_max_bytes 为 512MB,可用 SHOW ZONE CONFIGURATION FOR RANGE default 验证。