10.5 リバランス中のSQL実行可否

リバランス中のSQL実行可否を次の表に示します。

表10-10 リバランス中のSQL実行可否

SQL文リバランス処理中リバランス途中,及びリバランス停止中
共用モード占有モード
SELECT文×
UPDATE文※1×※1
INSERT文※2×※2
DELETE文×
LOCK文×
PURGE TABLE文※3××
DROP TABLE×※4×
CREATE INDEX×※4×
DROP INDEX×※4×
ALTER TABLE×※4××
(凡例)
○:実行できます。
×:実行できません。
注※1
ユニークキーインデクスを構成する列の更新はできません(エラーとなります)。
注※2
リバランス対象表にユニークキーインデクスが定義されている場合は実行できません(エラーとなります)。
注※3
RDエリア追加後,pdrbal実行前にPURGE TABLE文又はRDエリアの再初期化をした場合,リバランス初期化処理がされていないため,追加したRDエリアに対する格納処理は実行されません。
また,pdrbalがリターンコード0で終了する前に,PURGE TABLE文又はRDエリアの再初期化をした場合,リバランス完了処理がされていないため,FIXハッシュ分割表のSQL検索性能が劣化したままとなります。このような場合には,PURGE TABLE文又はRDエリアの再初期化をした後の状態で,pdrbalを実行してください。これによって,リバランス初期化処理,又はリバランス完了処理が実行されます。
注※4
回復不要FESを適用している場合,pdrbal実行中に定義系SQLやPURGE TABLE文が実行できてしまうことがあります(回復不要FESを適用していない場合は,不当に定義系SQLやPURGE TABLE文が実行されないように,フロントエンドサーバが排他資源を確保して防いでいます)。このため,pdrbal実行中は定義系SQLやPURGE TABLE文を実行しないでください。なお,占有モードでpdrbalを実行する場合は,バックエンドサーバで表に排他制御が掛かっているため,定義系SQLは排他待ちとなります。