10.5 リバランス中のSQL実行可否
リバランス中のSQL実行可否を次の表に示します。
表10-10 リバランス中のSQL実行可否
SQL文 | リバランス処理中 | リバランス途中,及びリバランス停止中 |
---|
共用モード | 占有モード |
---|
SELECT文 | ○ | × | ○ |
UPDATE文 | ○※1 | × | ○※1 |
INSERT文 | ○※2 | × | ○※2 |
DELETE文 | ○ | × | ○ |
LOCK文 | ○ | × | ○ |
PURGE TABLE文※3 | ×※4 | × | ○ |
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は排他待ちとなります。