【oracle】No1.再編成の副作用
Oracleデータベースについて記載します。
テーブル再編成ってご存知でしょうか?
OLTPやQueryHighなどで圧縮しているテーブルを
UPDATEすると圧縮が解けてしまったり、
DELETEすると断片化したりします。
そんなときにテーブルの再編成をして整えます。
【コマンド】
ALTER TABLE テーブル名 MOVE NOLOGGING PARALLEL 8;
PARALLEL:並列処理をして早くしたいときに指定します。
Nologging:ログを記録しない。
そんな再編成ですが、テーブルのDEGREE(パラレル度)が変わってしまう
と噂があります。
ほんとうか試してみましょう
変わりませんでした。噂は噂で終わりました。
ん、再編成ってインデックスでも出来るよね?
念のため試してみましょう。
【結果】
テーブルの再編成ではDEGREEは変わらない。
インデックスの再編の場合はDEGREEが変わってしまう。
再編成時のPARALLEL度がINDEXのDEGREEに適用されてしまう。
ちなみにDEGREEが変わるとどうなるかというと
SELECT * FROM テーブル名;
とSELECT文にパラレルを指定しなくても
パラレルで実行してしまいます。
インデックスの再編成をしたときは以下でDEGREE値を元に戻す必要がありそうです。
ALTER INDEX インデックス名 PARALLEL 1
初めてのOracleの投稿でした。
気になることがあったら
試してみようと思います。