Gblog

おもにTips

AWR - latch: shared pool の分析

引き続き(?)AWR を分析中なのでしょうか・・・。

Top 10 Foreground Events で latch: shared pool が高かったので調べてみました。

 

shared pool ラッチは、shared pool を保護するラッチです。複数のプロセスが同時に割当てを行おうとすると破損してしまうので。排他制御します。shared pool の割当て/解放の際にこのラッチを獲得する必要があり、すぐに獲得できないと latch: shared pool で待機します。

 

これも、ラッチ関連をみます。

  • Latch Activity
  • Latch Sleep Breakdown
  • Latch Miss Sources

ふーんって感じでいいと思います。

続きを読む

SQL_TEXT から SQL_ID を取得する。

SQL_ID っていつも V$SQL.SQL_ID とかから拾っていましたが、dbms_sqltune_util0.sqltext_to_sqlid なるものを見つけました。

SQL> col sql_id for a15
SQL> select 111111 from dual
  2  /

    111111
----------
    111111

SQL> select dbms_sqltune_util0.sqltext_to_sqlid('select 111111 from dual'||chr(0)) sql_id from dual;

SQL_ID
---------------
59bjbpsjgmvkp

SQL>
SQL> select sql_text from v$sql  where sql_id='59bjbpsjgmvkp';

SQL_TEXT
--------------------------------------------------------------------------------
select 111111 from dual

 11.2 からかな?

参照:http://www.morganslibrary.org/reference/pkgs/dbms_sqltune_util0.html

便利かも?

DESC DBMS_STATS

ちょっと話題にあがったので。

表の定義が確認できるSQL*Plus のコマンド DESCRIBE (短縮系は DESC)ですが、ファンクションやパッケージの引数も確認できます。

SQL> DESC DBMS_STATS
PROCEDURE ALTER_DATABASE_TAB_MONITORING
 引数名                         タイプ                  In/Out Default?
 ------------------------------ ----------------------- ------ --------
 MONITORING                     BOOLEAN                 IN     DEFAULT
 SYSOBJS                        BOOLEAN                 IN     DEFAULT
PROCEDURE ALTER_SCHEMA_TAB_MONITORING
 引数名                         タイプ                  In/Out Default?
 ------------------------------ ----------------------- ------ --------
 OWNNAME                        VARCHAR2                IN     DEFAULT
 MONITORING                     BOOLEAN                 IN     DEFAULT
PROCEDURE ALTER_STATS_HISTORY_RETENTION
 引数名                         タイプ                  In/Out Default?
 ------------------------------ ----------------------- ------ --------
 RETENTION                      NUMBER                  IN
・・・

とか

SQL> DESC TIMESTAMP_TO_SCN
FUNCTION TIMESTAMP_TO_SCN RETURNS NUMBER
 引数名                         タイプ                  In/Out Default?
 ------------------------------ ----------------------- ------ --------
 QUERY_TIME                     TIMESTAMP               IN

 とか

引数がわからないとかに使います。ちょっと便利なコマンド。

 

AWR でみるべきポイントのメモ

引き続き AWR について。最近そんな仕事ばかり。

 

最初にみるのは

  • Top 10 Foreground Events by Total Wait Time

== CPU 消費が高い場合 ==

  • Host CPU
  • Time Model Statistics
  • DB CPU
    background cpu time
    parse time elapsed
  • SQL ordered by CPU Time
  • SQL ordered by Parse Calls

== I/O の待機が高い場合 ==

  • Load Profile
  • IO Profile
  • SQL ordered by User I/O Wait Time
  • SQL ordered by Reads
  • SQL ordered by Physical Reads (UnOptimized)
  • File IO Stats (Tablespace IO Stats)
  • Instance Efficiency Percentages (Target 100%)
    Buffer Hit %:
  • Segments by Physical Reads
  • Segments by Physical Read Requests
    Segments by * は他にも複数あり、状況に応じて。

個人的には、以下はあまり見ません。

  • IOStat by Function summary
  • IOStat by Filetype summary
  • IOStat by Function/Filetype summary

== 共有プール関連 ==

  • Instance Efficiency Percentages (Target 100%)
    Soft Parse %:
    Latch Hit %:
  • Memory Statistics
  • Shared Pool Statistic
  • SQL ordered by Sharable Memory
  • SQL ordered by Version Count
  • Shared Pool Advisory
  • Memory Dynamic Components
  • Memory Resize Ops (Memory Resize Operations Summary)
  • SGA breakdown difference

== GLOBAL CACHE 関連 ==

  • Global Cache Load Profile
  • SQL ordered by Cluster Wait Time
  • Segments by Global Cache Buffer Busy
  • Segments by CR Blocks Received
  • Segments by Current Blocks Received
  • Other Instance Activity Stats
    gc blocks lost

他にもみるポイントはあるかもですが、どちらかというとみるべきポイントをしぼっていきたい。これいらないんじゃね?というものがあれば消していきたい。

実際にまわしてみてから、アップデート予定。