This discussion is archived
3 Replies Latest reply: Feb 4, 2013 8:00 PM by asahide RSS

V$SQLのLAST_LOAD_TIMEについて

988825 Newbie
Currently Being Moderated
おせわになります。
Oracle10gR2以降(11gもある)で作成したDBの性能情報を調べるため、
V$SQL系のビューを参照するSQLを流して調査しようとしています。

調査方法としては、「特定の期間において、1実行あたりの○○が長い/大きいもの」
(○○には例えば「CPU使用時間」が入る)といったかたちで調べようとしているの
ですが、この「特定の期間」という条件を指定するのに最もふさわしい方法は何なの
でしょうか。いやそもそも、そういった調べ方自体不可能なのでしょうか。

この、「特定の期間において」という条件を指定する方法として、V$SQLのLAST_LOAD_TIME
を指定する例がネットにいくつか挙がっているのですが、別サイトでのこの列の説明として、

http://docs.oracle.com/cd/E16338_01/server.112/b56311/dynviews_3043.htm
問合せプランがライブラリ・キャッシュにロードされた時刻
http://oracletech.jp/skillup/shibacho/000545.html
LAST_LOAD_TIME列は、分析対象のSQLがライブラリ・キャッシュにロードされた時刻をしており、
いつハード・パース(実行計画が作成)されたのかを読み取ることが可能です。
とあり、名前から何となく想像する「最後に実行された日時」とは別物ではないかと
考えております。

試せていないのですが、例えば、1年以上毎日のように実行されるSQLで、データ量が
多くなってきたために性能が劣化してきたものがあるとして、その実行計画がずっと
変化していない場合、「ここ一ヶ月の期間で」といった条件としてLAST_LOAD_TIMEを
指定すると、ヒットしないような気がしています。

STATSPACKを入れたら、というのもありますが、STATSPACKですとアラートログに
ORAエラーが吐かれSNAPが以降とれなくなるというバグを最近食らっているので、使用
できなかったりしています。

すみません、よろしくお願いします。
  • 1. Re: V$SQLのLAST_LOAD_TIMEについて
    asahide Expert
    Currently Being Moderated
    この要件を読む限り、そのバグと言われている箇所を回避してでもSTASPACKを使用する方が楽なのではないかと思います。。


    V$系の情報は「その時点」でのデータなので比較するならStatspackとかのように、定期的にデータを取得して比較しないといけないのではないかと。

    一応、一つ一つの実行という意味では、V$SESSTATの情報が良いのではないかと思います。
    TIPSはこちら<<http://www.dba-oracle.com/t_v_sesstat.htm>>とかこちら<<http://www.dba-oracle.com/oracle_tips_top_session.htm>>
  • 2. Re: V$SQLのLAST_LOAD_TIMEについて
    988825 Newbie
    Currently Being Moderated
    asahideOさん、コメント頂きありがとうございます。
    この要件を読む限り、そのバグと言われている箇所を回避してでもSTASPACKを使用する方が楽なのではないかと思います。。

    V$系の情報は「その時点」でのデータなので比較するならStatspackとかのように、定期的にデータを取得して比較しないといけないのではないかと。
    やはりそうですよね、、お客様の本番環境で真夜中にORAエラー出力あがってしかもアラートログ監視していたもので、
    ちょっと敏感になっているのです。Oracleにも問い合せたのですが、エラー発生の可能性を減らすことは出来ても
    100%の回避はできない、と言われてしまいましたし。。
    一応、一つ一つの実行という意味では、V$SESSTATの情報が良いのではないかと思います。
    TIPSはこちら<<http://www.dba-oracle.com/t_v_sesstat.htm>>とかこちら<<http://www.dba-oracle.com/oracle_tips_top_session.htm>>
    ご紹介頂きありがとうございます。V$SESSTATとリンク先内容を勉強させて頂きます。
  • 3. Re: V$SQLのLAST_LOAD_TIMEについて
    asahide Expert
    Currently Being Moderated
    お客様の本番環境で真夜中にORAエラー出力
    ORA-1とかですかね、よく聞きますね。
    ご紹介頂きありがとうございます。V$SESSTATとリンク先内容を勉強させて頂きます。
    もう少し良い方法もあると思います、他のエキスパートが回答してくれるかもしれません。。。

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points