DBeaver本身不自动展示分区信息,必须通过SQL查询系统视图(如MySQL用information_schema.PARTITIONS、Oracle用USER_TAB_PARTITIONS、HANA用M_TABLE_PARTITIONS);仅部分数据库在“表属性→分区”选项卡中提供简要显示,受限于驱动与权限。

直接看结论:DBeaver 本身不自动展示分区信息,必须通过 SQL 查询系统视图或使用数据库原生分区元数据表;图形界面中仅部分数据库(如 HANA、Oracle)在“表属性 → 分区”选项卡里有简要显示,但内容有限且依赖驱动支持。
为什么不能右键“查看分区”就出来?
DBeaver 是通用 JDBC 客户端,不内置分区逻辑——它只负责把 SQL 发给数据库、把结果画成表格。分区是数据库自身的特性,不同厂商实现差异极大(Oracle 用 USER_TAB_PARTITIONS,MySQL 用 information_schema.PARTITIONS,HANA 用 M_TABLE_PARTITIONS),DBeaver 不可能为每种数据库预设统一 UI。
常见误区是以为“连上了就能看到分区”,实际往往连 SELECT * FROM USER_TAB_PARTITIONS 都报错,原因包括:
- 当前用户没权限查系统视图(如 Oracle 缺少
SELECT_CATALOG_ROLE) - 数据库版本太低,不支持分区(如 MySQL 5.1 以前)
- 驱动未启用元数据扩展(某些旧版 HANA JDBC 驱动默认不加载分区视图)
MySQL 表分区:查 information_schema.PARTITIONS 最可靠
这是跨 MySQL 版本兼容性最好的方式,无需额外权限(只要能查该库的表)。
执行以下语句(替换 your_table_name):
SELECT partition_name, partition_method, partition_expression, partition_description, table_rows, avg_row_length, data_length, index_length FROM information_schema.PARTITIONS WHERE table_schema = DATABASE() AND table_name = 'your_table_name';
注意点:
-
table_rows是估算值,InnoDB 下不准;如需精确行数,得对每个分区单独COUNT(*) -
partition_description对 RANGE/LIST 分区显示边界值,对 HASH/LINEAR HASH 是 NULL - 如果结果为空,先确认表是否真有分区:
SHOW CREATE TABLE your_table_name看输出里是否有PARTITION BY
Oracle 表分区:优先用 USER_TAB_PARTITIONS,别碰 DBA_*
普通开发账号通常没有 DBA 视图访问权,硬查 DBA_TAB_PARTITIONS 会报 ORA-00942: table or view does not exist。
安全写法:
SELECT
partition_name,
high_value,
num_rows,
last_analyzed
FROM USER_TAB_PARTITIONS
WHERE table_name = UPPER('your_table_name');
关键细节:
-
high_value是 RAW 类型,显示为 PL/SQL 代码片段(如TO_DATE(' 2024-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),不能直接当日期用 - 子分区信息在
USER_TAB_SUBPARTITIONS,需单独查 - 若表名含小写或特殊字符,
UPPER()会导致查不到——改用双引号并保持大小写:WHERE table_name = 'Your_Table_Name'
HANA 分区:用 M_TABLE_PARTITIONS + DBeaver 21.0+ 插件支持
HANA 的分区元数据集中在系统视图 M_TABLE_PARTITIONS,但老版本 DBeaver(
推荐操作顺序:
- 升级 DBeaver 到 21.0 或更高(官方从该版本起增强 HANA 分区集成)
- 确保已安装 SAP HANA 扩展插件(菜单栏
Help → Install New Software搜索SAP HANA) - 执行查询:
SELECT table_name, partition_type, partition_id, row_count, total_size FROM M_TABLE_PARTITIONS WHERE table_name = 'YOUR_TABLE_NAME';
- 图形界面中右键表 →
Properties→Partitions选项卡才可能有内容;若灰显,说明插件未生效或权限不足
容易被忽略的一点:HANA 分区统计(row_count, total_size)不是实时刷新的,需手动执行 ANALYZE TABLE 或等后台自动收集任务运行后才准确。











