ORACLE MANIAC

ORACLE技を研究中...

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

FULL SCANのPARALLEL ORACLE

FULL SCANになってしまうテーブルを速くする場合はPARALLELヒント句をつけるとよいだろう。
※複数CPUであることが条件

SELECT /*+ PARALLEL(テーブル名,並列度) */ FROM テーブル名;

ただ、元々INDEX SCANになっている場合はFULL SCANしてくれないので

SELECT /*+ FULL(テーブル名) PARALLEL(テーブル名,並列度) */ FROM テーブル名;

とする必要がある。

INDEX SCANになってるのに、なぜFULL SCANにするのかって?

この方が速いときもあるのです。。

スポンサーサイト

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/12/27(土) 08:41:18|
  2. ORACLE

indexヒント句 ORACLE

indexヒント句の基本的な使い方を説明しておく。

selectの直後に

/*+ INDEX(TABLE名 INDEX名) */

を入れるだけだ。

例)
select /*+ INDEX(emp ind1) */ from emp;

ちなみにテーブル名とインデックス名の間はスペースを入れるのが基本だが、カンマでも大丈夫だった。
/*+ INDEX(TABLE名,INDEX名) */

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/12/23(火) 08:19:51|
  2. ORACLE

sql_traceとevent 10046 ORACLE ALTER SESSION

SQLトレースの設定で

alter session set sql_trace=true;

alter session set events '10046 trace name context forever, level 1';

は同じだ。

ただ、set eventsの方はレベルが設定できる。

■level 1
 sql_trace=true と同じ

■level 4
 level 1 + バインド変数の情報

■level 8
 level 1 + wait event の情報

■level 12
 level 1 + バインド変数の情報 + wait event の情報

なので
alter session set events '10046 trace name context forever, level 12';

としてやれば大概の情報は出てくる。

終了するときは
alter session set events '10046 trace name context off';





テーマ:データベース - ジャンル:コンピュータ

  1. 2008/12/23(火) 08:10:33|
  2. ORACLE

SQLトレースを別セッションから取得するプロシージャ DBMS_SYSTEM ORACLE

SQLトレースを別セッションから取得するには、対象のセッションの
SIDとSERIAL#をV$SESSIONから取ってきてやればわかる。

そして、

EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION([SID],[SERIAL#],TRUE);


■開始
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(1,12,TRUE);

■終了
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(1,12,FALSE);

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/12/07(日) 10:09:00|
  2. ORACLE

awkで「'」(シングルクォート)を出力する

awkで「'」(シングルクォート)を出力させるにはどうしたらよいか。

\047」と打てばよい。

テーマ:UNIX/Linux - ジャンル:コンピュータ

  1. 2008/12/07(日) 10:02:45|
  2. コマンド

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。