Gblog

おもにTips

alter index rebuild

全くしらなかった。

記憶が消されてるのかも。

SQL> ALTER INDEX IND1_TAB1 REBUILD ONLINE;
ALTER INDEX IND1_TAB1 REBUILD ONLINE
            *
ERROR at line 1:
ORA-14086: a partitioned index may not be rebuilt as a whole


SQL>
SQL> ALTER INDEX IND1_TAB1 REBUILD PARTITION TAB1_PART4 ONLINE;
ALTER INDEX IND1_TAB1 REBUILD PARTITION TAB1_PART4 ONLINE
            *
ERROR at line 1:
ORA-14287: cannot REBUILD a partition of a composite partitioned index


SQL>
SQL> ALTER INDEX IND1_TAB1 REBUILD SUBPARTITION TAB1_PART4_SUBPART4 ONLINE;

Index altered.

SQL>

 

オンライン再定義がオンラインでない件

オンライン再定義をテストしていたのですが、どうも5秒ほど TM enque 待ちが発生するので、基本のケースでテストしてみた。

こちらのブログを参考にしています。

続きを読む

SYS.AUD$ のパージ

SYS.AUD$ のパージ方法について確認していたところ。

標準監査と統合監査は一度に消せるのか?

コマンドはこちら。

BEGIN
  DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
   AUDIT_TRAIL_TYPE           =>  DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
   USE_LAST_ARCH_TIMESTAMP    =>  FALSE,
   CONTAINER                  =>  DBMS_AUDIT_MGMT.CONTAINER_CURRENT );
END;
/

 

リファレンスはマニュアル参照。

docs.oracle.com

続きを読む

Throttle:絞り弁、スロットル

Backup Restore Throttle sleep という待機イベントの待機時間が結構長かったので調べてみたが、ドキュメントが全くない。

こちらのサイトがそれっぽい。

docs.dbmarlin.com

 

他にも、DBMS_BACKUP_RESTORE.SLEEP なるものがあったので少し触ってみた。

続きを読む

日時リテラル?

変な SQL を見つけたので、気になって調べてみた。

select ...... where UPDATE_DATE BETWEEN DATE'2024-10-21' ...

 

こんな書き方、初めて見た。いつも TO_DATE つかってる。

マニュアルはこちら

 

普通に使えるみたい。

SQL> select DATE'2024-10-21' from dual;

DATE'202
--------
24-10-21

SQL> 

 

NLS_DATE_FORMAT 準拠のようだけど、明示的に変換した方がよい気がするので、TO_DATE をお勧めしたい。