CLEAR_BALANCE_WEIGHTは、パーティションの重みをクリアするために使用されます。
使用上の制限と注意事項
ユーザーテナントのみが
CLEAR_BALANCE_WEIGHTサブプログラムを呼び出してパーティションの重みをクリアできます。システムテナントはサポートされていません。テーブルレベルのパーティション重みをクリアすると、すべてのパーティションに設定されたテーブルレベルの重みが削除されます。そのテーブルにパーティションレベルの重みが設定されている場合、システムはパーティションレベルの重みを保持します。
構文
DBMS_BALANCE.CLEAR_BALANCE_WEIGHT(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
partition_name IN VARCHAR2 DEFAULT NULL,
subpartition_name IN VARCHAR2 DEFAULT NULL);
パラメータ説明
パラメータ |
説明 |
|---|---|
| schema_name | テーブルが属するスキーマ名 |
| table_name | テーブル名 |
| partition_name | パーティション名 |
| subpartition_name | サブパーティション名。構文はサポートされていますが、現在サブパーティションの重み設定はサポートされていません。 |
例
ユーザー
SYS(Oracleモードではスキーマ名とユーザー名が同じ)の下に、パーティションの重みが設定されたテーブルTBL1_Hがあると仮定します。パーティションの重み情報を照会するステートメントは以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.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 | SYS | TBL1_H | NULL | NULL | NULL | 201006 | NULL | 500002 | | 500002 | 500003 | NULL | 2 | SYS | TBL1_H | P0 | NULL | NULL | 201006 | NULL | 500003 | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ 2 rows in setテーブル
TBL1_Hのテーブルレベルのパーティション重みをクリアします。obclient(SYS@oracle001)[SYS]> delimiter //oobclient(SYS@oracle001)[SYS]> BEGIN DBMS_BALANCE.CLEAR_BALANCE_WEIGHT('SYS','TBL1_H'); END;//obclient(SYS@oracle001)[SYS]> delimiter ;クリア後、テーブルに設定されていたパーティションの重み情報を照会します。
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.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 | SYS | TBL1_H | P0 | NULL | NULL | 201006 | NULL | 500003 | +----------+--------------+-----------------+--------+---------------+------------+----------------+-------------------+-----------------+-------------+---------------+-----------+ 1 row in setテーブル
TBL1_HのパーティションP0のパーティション重みをクリアします。obclient(SYS@oracle001)[SYS]> delimiter //obclient(SYS@oracle001)[SYS]> BEGIN DBMS_BALANCE.CLEAR_BALANCE_WEIGHT('SYS','TBL1_H','P0'); END;//obclient(SYS@oracle001)[SYS]> delimiter ;クリア後、再度テーブルに設定されていたパーティションの重み情報を照会します。
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.DBA_OB_OBJECT_BALANCE_WEIGHT;クエリ結果は空です。