Gblog

おもにTips

パーティションの CREATE 文

  当然、そらでかけるわけもなく。

続きを読む

STA (SQL Tuning Advisor) のコマンド

メモメモ。。。

 

VARIABLE STMT_TASK VARCHAR2(64);
EXEC :STMT_TASK := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id=>'xxxxxxxxxxxxx', time_limit=>300);
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(:STMT_TASK);
SET LONGCHUNKSIZE 2000000 LONG 2000000 LINESIZE 300 PAGESIZE 1000;
COLUMN REPORT FORMAT A300
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:STMT_TASK) AS REPORT FROM DUAL;

 

log file sync の調べ方

log file sync をすごく簡単に言うと、、、

 

「コミット時に発生する待機で、LGWRによるREDOログの書込み完了待ち」

 

です。

 

トランザクションがコミットされると、データの整合性が保たれるようREDOログ情報をファイルに書き出す必要があります。

なので、サーバープロセスが commit すると LGWR は REDOログバッファの情報を REDOログファイルに書き出します。

サーバープロセスはそれを待ちます。

 

「commit 時に log file sync で待つ」

 

これは正常な動作です。

 

でも log file sync 待ちが長くなると何か問題があるかもしれません。

 

続きを読む

adaptive log file sync ...

log file sync の待機時間が長いというので、post-wait から polling に変わっていないか調べました。

AWR でここら辺のインスタンス統計が上がると polling になっている可能性があります。

  • redo synch poll writes
  • redo synch polls

意味は、、、よくわかりません。redo synch writes は、

ログ・バッファも適用されている変更を、コミットのためにディスクに書き込む必要があった回数

とあります。poll がついてるのできっとそういうことでしょう。

redo synch polls は polling の回数かな、、、LGWR の?

続きを読む

サブパーティションごとの件数

パーティションごとの件数はこんな感じで確認できます。

select count(*) from [table_name] partition( [parition_name] );

 

サブパーティションの場合は?

続きを読む

spool で CSV (Comma-Separated Values)

TSV やったんで、CSV もついでに。

こんなかんじ

set lin 120
set pages 0
set head off
set feed off
set term off
set trims on
set echo off
spool test.csv
select dummy || ',' || dummy  from dual;
spool off

 

続きを読む

spool で TSV (Tab-Separated Values)

CHR 関数でできる。CHR(9) がタブ。

こんな感じ

set lin 120
set pages 0
set head off
set feed off
set term off
set trims on
set echo off
spool test.tsv
select dummy || CHR(9) || dummy from dual;
spool off

続きを読む