見出し画像

【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の投稿でした。
気になることがあったら
試してみようと思います。

この記事が気に入ったらサポートをしてみませんか?