以下の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