忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

LOB列を使用することのデメリットについて

LOB列を使用した場合のデメリットについて。
とてつもないデメリットが存在するのでメモしておく。

EXPDPでのエクスポートの際に、とてつもなくパフォーマンスが悪化するらしいです。
特にLOBが別セグメントに保存されている場合で、このセグメントが大きい場合に…

EXPDPの場合、対象のセグメントが大きいとダイレクトパスが使用されず、
さらにLOBセグメントの場合PALARELLオプションが効かないとか…

レコード数が多くなるテーブルにはLOB列は使用しないようにしましょう!
PR

SQL実行の詳細を確認する

DBMS_SQLTUNE.REPORT_SQL_MONITOR を使用することにより、
SQL実行計画のどこで時間がかかっているのか、どこで待機イベントが発生しているのかを確認できる。

set long 1000000
set longchunksize 1000000
set linesize 1000
set pagesize 1000
select dbms_sqltune.report_sql_monitor('&sqlid') from dual;

※&sqlid にはSQL_IDをセットする。

実行された直後でないと情報が取得できないので注意。
(v$active_session_history を問い合わせているらしいので1時間程度?
 使ってみた感じでは5分、10分程度のような気も…)

直後でも取得できない場合は、SQL分に /*+ monitor */ ヒントを付加するとよいかも。

実行中のSQLが現在、実行計画のどの部分を実行しているかということも確認できるようだが
この関数の動作が遅いので実行後の確認に向いていると思われる。

参考:Oracle Database パフォーマンス・チューニング・ガイド 11gリリース2(11.2)
    10.4 リアルタイムSQL監視

現在実行中のSQLを調べる(SQL_MONITOR)

現在実行中のSQLを確認したい場合、パフォーマンスビュー:v$sql_monitor を問い合わせるとよい。

col status for a20
col username for a15
col sql_id for a15
col id for 99
select inst_id id, status, sql_id, username, to_char(sql_exec_start, 'hh24:mi:ss') sql_exec_start, elapsed_time
from gv$sql_monitor
where status in ('QUEUED', 'EXECUTING');

NUM_ROWSの値は正確ではないらしい

ディクショナリ DBA_TABLES 等の「NUM_ROWS」列の値は正確ではないとのこと…

以下KROWNから抜粋

例えば、NUM_ROWS は表の行数を示す統計値ですが、
サンプリングの結果見積られた行数が実際の表の行数を示すとは限りません。
…(中略)…
正確な行数を確認したい場合には、SELECT COUNT(*) などで値を取得する必要があります。


だそうです。 ○rz

バッファ・キャッシュにオブジェクトがのっているか確認する

バッファ・キャッシュにオブジェクト(テーブルやインデックス等)がのっているかどうか
以下の方法で確認する。

■オブジェクトIDの確認
select data_object_id, object_type from dba_object
where owner = 'スキーマ名'
  and object_name = 'セグメント名';

■バッファ・キャッシュ内のバッファ数を検索
select count(*) from $bh
where objd = オブジェクトID;

※8.0.5以下のバージョンではいろいろ問題があってちゃんと見れない?
※PARALLEL属性のテーブルはv$bhにのらないことがあるらしい

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。