ホームページ  >  記事  >  データベース  >  Oracleで履歴をクエリする方法

Oracleで履歴をクエリする方法

PHPz
PHPzオリジナル
2023-04-17 16:37:155126ブラウズ

Oracle データベースでは、クエリ履歴とは、クエリ ステートメント、クエリ時間、クエリ結果、その他の関連情報を含むクエリ操作の履歴記録を指します。クエリ履歴は、データベースのパフォーマンスの最適化、問題のトラブルシューティング、データの整合性の確認にとって重要です。

クエリ履歴を記録するために、Oracle ではさまざまな方法が提供されています。以下で 1 つずつ紹介します。

  1. Oracle 監査の使用

Oracle 監査は、データベース上の操作を記録するメカニズムです。監査機能を有効にし、監査ルールを設定することで、クエリ履歴を記録できます。

監査機能を有効にする:

ALTER SYSTEM SET Audit_trail=DB SCOPE=SPFILE;

監査機能を有効にした後、監査ルールも設定する必要があります。必要に応じて複数のルールを設定します。たとえば、すべてのテーブルで 1,000 行を超えるレコードを監査するクエリを設定できます。

CREATE AUDIT POLICY query_audit ACTIONS SELECT TABLE,SELECT ANY TABLE WHERE rowcount > 1000;

上記のルールを有効にします:

AUDIT POLICY query_audit;

このようにして、監査条件が発生すると、Oracle は関連情報を監査ログ ファイルに記録します。

クエリ監査結果:

SELECT username, TO_CHAR(timestamp, 'YYYY-MM-DD HH24:MI:SS')、statement_type、sql_text、extended_timestamp、return_code FROM dba_audit_trail WHEREstatement_type = ' SELECT' AND return_code = 0 ORDER BY timestamp DESC;

監査機能が有効になっている場合、監査ログを定期的にクリーンアップする必要があることに注意してください。

  1. クエリ履歴ビュー

Oracle では、ユーザーが履歴レコードを簡単にクエリできるよう、複数のシステム ビューを提供しています。このうち、DBA_HIST_SQLTEXT は SQL ステートメントの履歴を記録するために使用されます。

クエリ SQL ステートメント履歴:

SELECT sql_text、force_matching_signature、plan_hash_value、last_active_time FROM DBA_HIST_SQLTEXT WHERE sql_text LIKE '%SELECT%' ORDER BY last_active_time DESC;

上記のクエリ ステートメント「SELECT」で始まるすべての SQL ステートメント履歴レコードが、最新のアクティビティ時間順に並べ替えられて返されます。

  1. サードパーティ ツールを使用する

Oracle が提供する方法に加えて、GUI ベースの Oracle 管理ツール (Toad など) を使用して簡単にクエリを実行することもできます。歴史的な記録。

Toad のビジュアル インターフェイスを通じて、SQL 履歴を簡単に表示し、フィルタリングし、並べ替えることができます。さらに、Toad は、SQL チューニング アシスタント、実行プラン分析など、クエリのパフォーマンスを最適化するためのさまざまなツールも提供します。

サードパーティ ツールを使用するのが、履歴レコードをクエリする最も便利で直感的な方法であると言えます。

概要:

クエリ履歴は、Oracle データベースの管理と保守にとって非常に重要です。オラクルでは、監査メカニズム、問合せ履歴ビュー、サードパーティ・ツールなど、問合せ履歴を記録するさまざまな方法を提供しています。ユーザーは、実際のニーズに基づいて履歴レコードをクエリするための最適な方法を選択できます。同時に、ディスク容量の過剰な占有やデータ損失などの問題を避けるために、クエリ履歴の定期的なクリーニングとバックアップにも注意を払う必要があります。

以上がOracleで履歴をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。