「収穫は、より多くのSQLの最適化よりも」この本、スクリプトツール利用が多い、または彼らのニーズに応じて、再利用の転換は、彼らの兵器庫に蓄積することができます。

 

 

以下の2つのスクリプト、公式の情報源:

https://github.com/liangjingbin99/shouhuo/tree/master/%E7%AC%AC05%E7%AB%A0

 

SQLで使用されていないバインド変数を探す1

その後、本方法、テーブルが構築され、それは部品のような未使用のバインド変数は、@に置き換えSQLに似ている、と同じパケットを抽出し、次のように、SQL変数のバインディング未使用を識別するために、

テーブルt_bind_sqlパージをドロップします。
選択SQL_TEXT、五$ SQLAREAからモジュールとしてテーブルt_bind_sqlを作成します。
アドオンsql_text_wo_constants VARCHAR2(1000)t_bind_sql ALTER TABLE。
作成または機能の置き換え
remove_constants(VARCHAR2でp_query)戻りVARCHAR2
として
    長いl_queryを。
    l_char VARCHAR2(10)。
    ブールデフォルトFALSEをl_in_quotes。
開始
    1 iについて..長さ(p_query)
    ループ
        l_char:= SUBSTR(p_query、I、1)。
        (l_char = '' ''とl_in_quotes)場合
        、次いで
            l_in_quotes:= FALSE;
        ELSIF(l_char = '' ''とNOT l_in_quotes)
        、その後
            l_in_quotes:= TRUE;
            l_query:= l_query || '' '#';
        場合は終了。
        その後、(NOT l_in_quotes)の場合
            = l_query ||:l_query l_char;
        場合は終了。
    ループを終了します。
    l_query:=(l_query、 '0123456789'、 '@@@@@@@@@@')の変換;
    .. 0でiは、8ループ
        l_query:=置き換える((l_query、LPADを'@'、10-I、 '@')、 '@')。
        l_query:=置き換える(l_query、LPAD( ' ' 10-I、' ')、'')。
    ループを終了します。
    上部リターン(l_query)。
終わり;
/
更新t_bind_sqlセットsql_text_wo_constants = remove_constants(SQL_TEXT)。
コミット;

 

次に、以下のように迅速に位置決めすることができる。
SET LINESIZE 266
COLはフォーマットA30 sql_text_wo_constants
COL Module1のフォーマットA30
COLフォーマットCNT 999999
SELECT sql_text_wo_constants、Module1を、COUNT(*)CNTを

sql_text_wo_constantsによってt_bind_sqlグループから、モジュール

3 DESCでCOUNT(*)> 100の順序を持​​ちます。

 

その結果、

 

 

私たちはexact_matching_signatureとforce_matching_signatureがでてv $ SQLによると、別の方法では、SQLの監査を行うと、バインド変数を使用するかどうかを決定するために、

a.usernameを選択し、

t.sql_text、
TO_CHAR(t.force_matching_signature)force_matching_signatureがなど、
COUNT(*)としてカウント
のV $からSQLトン、ALL_USERS
どこt.force_matching_signature> 0と

t.parsing_user_id = a.user_idと

t.force_matching_signature <> t.exact_matching_signature

t.force_matching_signature、t.sql_text、a.usernameによって基
を有する数(*)> 20
カウント(*)DESC順。

 

データベーススクリプトのピークを決定する2

このスクリプトは、定期的にデータベースを導く役割を果たしてきた時にピーク点を決定するために、システムの大きさを確認することができます。

 

小さなミスがあり、公式のスクリプトは、それはタイプミスでなければなりません、あなたが実行していることを、私は更新版を見ることができ、

https://github.com/bisal-liu/oracle/blob/master/tools/monitor_database.sql

 

結果を時間に応じて、数(/ s)を解析し、DB時間、(/ s)を読み取るためのロジックのREDO量、物理的リード(/ S)、実行回数(/ S)を含む、保存され、ハード解析時間(/秒)、ボリュームは(/ s)は、報告書の基本的なアウトラインは、AWRおよびコンテンツロード・プロファイル部であり、実際には、SQLビューから、DBA_HIST_SNAPSHOTから統計をされ、命令は、AWRスナップショットのライブラリから入手できます

 

 

歴史記事:

「」収穫、より多くのSQLの最適化よりも「 - 鍵生成スクリプト学習におけるチューニング情報」

「」収穫は、より多くのSQLの最適化よりも「 -比較の実施計画を取得
する方法を」----------------
著作権:オリジナルの記事は、CSDNブロガーである「bisal」、およびCC 4.0に従ってくださいBY-SAの著作権契約、元のソースのリンクと、この文を添付してください、再現。
オリジナルリンクします。https://blog.csdn.net/bisal/article/details/88840385

おすすめ

転載: www.cnblogs.com/yaoyangding/p/12052142.html