Oracleデータベース(11g)が突然非常に遅くなります。実際に何が問題なのかを見つけるためにデバッグプロセスをどこから開始すればよいのでしょうか?
テーブルの統計を生成してロックを探しましたが、原因を直接示す情報が見つからないか、間違った場所を見ている可能性があります。
どこから始めればいいか教えてください。
まあ、私は遅いものを定義します:)
挿入には非常に時間がかかります。100,000レコードの挿入でさえ、1時間程度かかります。
最初にデータベースサーバーを調べて、ボトルネックがあるかどうかを確認します。ディスク、ネットワーク、CPU、メモリ。根本的なハードウェアの問題がある場合、これが原因となる可能性があります。しかし、アプリケーションの問題がある場合、これは効果ではなく原因を示す可能性があります。
Oracleのパフォーマンスの問題に対処する最も徹底的な方法は、1つ以上の遅いセッションの拡張SQLトレースを実行し、それらをプロファイルして、実際に時間を費やしている場所を確認することです。これを行うための優れた情報源は、 here の最初の章を見ることができるCary Millsapの本です。
ただし、同じ情報を確認する方法としては、データディクショナリにクエリを実行して、遅いセッションが待機しているイベントを確認するだけでは不十分です。何かがひどく間違っている場合、これは多くの場合、完全なトレースと同じくらい効果的です。私はこのクエリを数回実行することから始めて、それがあなたをどこに導くかを見ます:
select seq#, event, wait_time, seconds_in_wait, state
from v$session
where type='USER'
;
同様の情報を収集する別のアプローチは Tanel PoderのSnapperスクリプト です。
物事がしばらくの間うまく機能していて、大きな変化がなかった場合(つまり、使用量の増加、インデックスの変更、大量のレポート、分析処理など)
ハードウェア/物理ディスクの正常性とパフォーマンスを確認することから始めます。
率直に言って、これはかなり広い質問であり、未知の問題がたくさんあります...しかし、あなたの特定の質問はどこから始めればよいのかです。それが私が始めるところです。
一般的に言えば、トップレベルから始めて、時間が費やされている場所を連続して分析します。ある時点で、本来は必要のない時間を費やしすぎているレベルに到達するはずです。
詳細については、Cary Millsapの論文 パフォーマンスについて明確に考える を強くお勧めします。
このリンクをチェックしてください: http://www.dba-Oracle.com/t_top_reasons_poor_performance.htm
Oracle Diagnostic Packのライセンスを取得しましたか?はいの場合、ADDM(自動診断モニター)とAWR(自動ワークロードリポジトリ)の便利なツールにアクセスできます。 AWRレポートは最初は理解するのが難しいかもしれませんが、データベースで実際に何が起こっているかについて非常に貴重な情報を提供する可能性があります。
Diagnostic packがない場合でも、アクティブなセッション履歴ビューにアクセスできます。
11gを使用している場合、これは「DBコントロール」を開始できることを意味します。これはEnterprise Managerの限定バージョンです(または、完全にライセンスされたEnterprise Managerを持っている可能性があります)。 DB ControlはWebインターフェースを提供し、特にパフォーマンス関連の情報を表示し、多くの有用な情報を収集します。繰り返しますが、学ぶべきことはたくさんありますが、パフォーマンスの問題がある場合は、[パフォーマンス]タブを一目見るだけで、すでに多くの情報を得ることができます。
よろしく