バックグラウンド:
ビューがビューを呼び出し、ビューがビューを呼び出しているデータベース環境があります...ロジックが複雑になり、基になるビューへの変更が、クライアント アプリケーションによって呼び出されるトップ ビューに大きな影響を与える可能性があります。
現在、すべてのロジックを文書化し、すべてを巻き戻す方法を考えていますが、開発は続き、パフォーマンスは低下し続けています。
現在、私はクライアント クエリに対して説明プランを手動で実行し、それを調整することを検討していました。これは時間のかかる退屈なプロセスであり、変化は何年にもわたって調査されない場合があります.
問題:
SQL ID をリストし、実際の時間の変化/推定行と実際の行との不一致/バッファーの変化/読み取りの変化を先月に計算された平均と比較してリストするレポートを生成したいと考えています。
通常、次のスクリプトを手動で実行し、その日の応答だけに基づいて調べます。
ALTER SESSION SET statistics_level=all;
set linesize 256;
set pagesize 0;
set serveroutput off;
-- QUERY
SELECT
*
FROM
table (DBMS_XPLAN.display_cursor (NULL, NULL, 'ALLSTATS LAST'));
私がやろうとしているのは、説明プランのクエリを自動化し、統計をテーブルに挿入することです。そこから、回帰レポートを実行してパフォーマンスの変化を検出し、開発者に警告することができます。
OEMに頼らなくても、このようなことは十分に一般的だと思っていました. 何も見つからないので、これに対するより一般的なアプローチがあるのだろうか?