| name | kingbase-large-table-optimize |
| description | KingbaseES(金仓)大表识别与容量规划专家技能。给定 KingbaseES 实例连接信息(主机/端口/用户名/密码,或 PGHOST/PGPORT/PGDBNAME/PGUSER/PGPASSWORD 环境变量),自动发现大表、剔除膨胀水分得到真实数据量、分析每张大表的 DML/扫描/索引负载特征,判定负载类型(高频更新/纯写入/OLTP点查/分析型/混合型),并给出分区改造、autovacuum 调优、索引优化等针对性建议。触发条件:用户提到"大表分析"、"大表优化"、"金仓表膨胀"、"金仓表变胖了"、"金仓容量规划"、"这张表要不要分区"、"autovacuum 调优"、"金仓表统计信息分析"、"kingbase 性能诊断"、"帮我看看这个金仓实例有哪些大表"、"金仓数据库瘦身",或提供了 KingbaseES 连接信息并希望做体检/优化建议。即使用户只说"帮我看看我的金仓库是不是该分区了"或"这个金仓实例是不是该做维护了",也应使用本 skill。全程只读,不执行任何 DDL/DML。 |
| tags | ["KingbaseES","金仓","大表优化","表分区","大表工作负载分析"] |
| platform | ["claude-code","cursor"] |
| author | digoal |
| version | 1.0.0 |
| license | GNU General Public License v2.0 |
| homepage | https://github.com/digoal/skills |
KingbaseES(金仓)大表优化与容量规划
给定一个 KingbaseES(金仓)实例的连接信息,识别真实大表(剔除膨胀干扰),分析每张大表的工作负载特征(DML 活跃度、读取模式、索引深度),按负载类型给出结构化优化建议(分区改造、autovacuum 调参、索引重构、归档策略等),最终产出一份可执行的优化优先级报告。
核心原则:全程只读。 本技能只查询系统视图和统计信息,严禁执行任何 DDL 或 DML(包括 VACUUM、ANALYZE、REINDEX、CREATE EXTENSION 等操作也只建议、不执行,除非用户明确授权)。
连接信息与默认值
- 兼容模式假设:KingbaseES 默认运行在 PostgreSQL 兼容模式,本技能全部使用
pg_* 目录视图/函数(已在 V9R1C10 PG 兼容模式下实测可用)。若实例被配置为其他兼容模式(如 Oracle 模式),先提示用户确认/切换。
- 连接参数优先级(从高到低):
- 用户在当前对话中显式提供的 host/port/user/password/dbname;
- 环境变量:
PGHOST、PGPORT、PGDBNAME(兼容标准 PG 的 PGDATABASE)、PGUSER、PGPASSWORD;
- 内置默认值:
PGHOST=127.0.0.1 PGPORT=5432 PGDBNAME=kingbase PGUSER=kingbase PGPASSWORD=123456。
- 默认 dbname 为
kingbase(金仓默认管理库);用户未指定 dbname 时遍历全部非模板库(pg_database WHERE datistemplate=false AND datallowconn=true)。
- 密码只用于建立连接:不写入日志、不回显、不上传;优先用
PGPASSWORD 环境变量或 .pgpass 传递,避免出现在命令行参数中被 ps 等工具窥探。
前置要求
- 连接账号需具备:登录权限 + 目标库
CONNECT 权限;pg_stat_user_tables / pg_stat_user_indexes 等统计视图默认对登录用户可读,无需额外授权。若要以精确模式分析膨胀,需安装 kbstattuple 扩展(见阶段 0,安装属 DDL,须用户授权)。
- 运行环境:
psql(推荐,shell 采集)或 Python 3 + psycopg2-binary(批量采集脚本)。KingbaseES 兼容 PG 网络协议,标准 psql / psycopg2 可直接连接;金仓自带客户端为 ksql,同样适用。
- 网络需能访问目标 host:port。
- 已在 V9R1C10(PG 兼容模式)实测可用的目录对象:
pg_class / pg_namespace / pg_extension / pg_database / pg_inherits / pg_partitioned_table / pg_stat_user_tables / pg_stat_user_indexes / pg_am / pg_proc、pg_partition_tree()、pg_total_relation_size() / pg_relation_size() / pg_indexes_size()。注意 sys_extension 目录在 V9R1C10 中不存在,扩展检测一律用 pg_extension。
工作流程
阶段 0:连接与预检
- 按上文优先级解析连接参数,执行
SELECT version(); 确认连通;用 SELECT current_setting('server_version_num'); 记录兼容的 PG 版本基线(V9R1C10 为 120001,即 PG 12.1,SQL 语法以 PG12 为基线,不支持 PG13+ 语法)。
- 检测精确分析能力():