首批通过分布式安全可靠测评,为关键业务系统打造
CLEAR_BALANCE_WEIGHT
更新时间:2026-04-15 23:07:37
CLEAR_BALANCE_WEIGHT 用于清除分区权重。
使用限制及注意事项
对于 V4.2.5 版本,从 V4.2.5 BP2 开始支持清除分区权重。
仅用户租户支持通过调用
CLEAR_BALANCE_WEIGHT子程序清除分区权重,系统租户不支持清除分区权重。清除表级分区权重是将所有分区上设置的表级权重删除。如果该表设置过分区级权重,则系统会保留分区级权重。
语法
DBMS_BALANCE.CLEAR_BALANCE_WEIGHT(
database_name VARCHAR(65535),
table_name VARCHAR(65535),
partition_name VARCHAR(65535) DEFAULT NULL,
subpartition_name VARCHAR(65535) DEFAULT NULL);
参数说明
| 参数 | 说明 |
|---|---|
| database_name | 表所属的数据库名 |
| table_name | 表名 |
| partition_name | 一级分区名 |
| subpartition_name | 二级分区名。仅语法支持,当前暂不支持设置二级分区权重。 |
示例
假设用户的
test数据库下,有一个设置了分区权重的表tbl1_h。查询其分区权重信息,语句如下:
obclient[test]> SELECT * FROM oceanbase.DBA_OB_OBJECT_BALANCE_WEIGHT;查询结果如下:
+----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ | TABLE_ID | PARTITION_ID | SUBPARTITION_ID | WEIGHT | DATABASE_NAME | TABLE_NAME | PARTITION_NAME | SUBPARTITION_NAME | TABLEGROUP_NAME | DATABASE_ID | TABLEGROUP_ID | OBJECT_ID | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ | 500002 | NULL | NULL | 1 | test | tbl1_h | NULL | NULL | NULL | 500001 | NULL | 500002 | | 500002 | 500003 | NULL | 2 | test | tbl1_h | p0 | NULL | NULL | 500001 | NULL | 500003 | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ 2 rows in set清除表
tbl1_h的表级分区权重。obclient[test]> CALL DBMS_BALANCE.CLEAR_BALANCE_WEIGHT('test','tbl1_h');清除后,查询表设置过的分区权重信息。
obclient[test]> SELECT * FROM oceanbase.DBA_OB_OBJECT_BALANCE_WEIGHT;查询结果如下:
+----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ | TABLE_ID | PARTITION_ID | SUBPARTITION_ID | WEIGHT | DATABASE_NAME | TABLE_NAME | PARTITION_NAME | SUBPARTITION_NAME | TABLEGROUP_NAME | DATABASE_ID | TABLEGROUP_ID | OBJECT_ID | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ | 500002 | 500003 | NULL | 2 | test | tbl1_h | p0 | NULL | NULL | 500001 | NULL | 500003 | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ 1 row in set清除表
tbl1_h中一级分区p0的分区权重。obclient[test]> CALL DBMS_BALANCE.CLEAR_BALANCE_WEIGHT('test','tbl1_h','p0');清除后,再次查询表设置过的分区权重信息。
obclient[test]> SELECT * FROM oceanbase.DBA_OB_OBJECT_BALANCE_WEIGHT;查询结果为空。