ホームページ >データベース >Oracle >Oracle クエリ実行計画の要約

Oracle クエリ実行計画の要約

WBOY
WBOY転載
2022-06-08 17:25:232138ブラウズ

この記事では、Oracle に関する関連知識を提供します。主にクエリ実行プランに関する関連コンテンツを紹介します。これは、データベース内で SQL ステートメントを実行する具体的な手順とプロセスです。見てみましょう。見てください、それが皆さんのお役に立てば幸いです。

Oracle クエリ実行計画の要約

推奨チュートリアル: 「Oracle ビデオ チュートリアル

実行プラン (実行プラン) は、クエリ プラン (クエリ プラン)、データベースが SQL ステートメントを実行するための特定の手順とプロセスです。 SQL クエリ ステートメントの実行計画には主に次のものが含まれます。

  • テーブルへのアクセス方法。データベースは、インデックスまたはテーブル全体のスキャンを通じてテーブル内のデータにアクセスします。

  • #複数のテーブルを結合する方法。データベースがテーブルを接続するために使用する接続アルゴリズム (複数のテーブルの順次アクセス シーケンスを含む)。

  • グループ化、集計、並べ替えなどの操作を実装する方法。

データベースごとに SQL クエリの実行プロセスに異なる実装方法が採用されていますが、クエリ ステートメントは通常、アナライザー、オプティマイザー、エグゼキューターによって処理され、最終結果を返す必要があります。同時に、アクセスパフォーマンスを向上させるためにさまざまなキャッシュも使用できます。

クエリ文は、簡単に言うと、クライアントの送信からサーバーが最終結果を返すまでの流れで、大まかに図のような流れになります。

まず、クライアントは SQL ステートメントを送信します。この前に、クライアントはデータベース サーバーに接続する必要があります。図のコネクタは、クライアント接続の確立と管理を担当するコンポーネントです。

次に、アナライザー (パーサー) が SQL ステートメントのさまざまなコンポーネントを解析し、構文解析を実行して、SQL ステートメントの構文が仕様に準拠しているかどうかを確認します。

たとえば、次のステートメントの FROM キーワードは、FORM:

と誤って記述されています。この場合、すべてのデータベース管理システムは構文ミスを返します。 。

オプティマイザは、データベースによって収集された統計情報を使用して、SQL ステートメントを実行する最適な方法を決定します。たとえば、単一のテーブルにインデックス スキャンとフル テーブル スキャンのどちらでアクセスするか、複数のテーブルを接続する順序、データの並べ替え方法などです。

オプティマイザはクエリのパフォーマンスを決定する重要なコンポーネントであり、データベースの統計情報がオプティマイザの判断の基礎となります。

最後に、エグゼキュータは、対応する実行モジュールを呼び出して、最適化された実行計画に従ってデータを取得し、結果をクライアントに返します。

実行プランを表示する方法

方法 1: ステートメント ビュー

Oracle データベースでは、EXPLAIN PLAN FOR コマンドを使用して次のこともできます。実行計画を生成しますが、次の 2 つのコマンドを実行する必要があります:

EXPLAIN PLAN FOR

SELECT * FROM  T_USER1 t where t.user_name = 'Admin';

SELECT * FROM  TABLE(dbms_xplan.display);
EXPLAIN PLAN FOR コマンドを使用して実行計画を生成し、それをシステム テーブル PLAN_TABLE に保存します。次に、クエリ ステートメントの実行プランを通じて、生成された実行プランを表示します。

ここで、dbms_xplan.display は Oracle システム関数です。返された結果は、ステートメントが Oracle の「SYS_C0016771」インデックス範囲スキャンを通じてデータを検索したことを示しています。

方法 2: ツールを使用して表示する

一般的に使用される Oracle データベース開発ツール PL/SQL で、SQL スクリプトを選択します, F5 キーを押すと、方法 1 でクエリした結果と同じスクリプトの実行計画情報が自動的に表示されます。

実行プロセス分析

Oracle データベースでは、システム テーブル user_indexes および user_ind_columns を通じてインデックスと関連フィールド情報をクエリできます。

SELECT * FROM  user_indexes;

SELECT * FROM  user_ind_columns;
推奨チュートリアル: 「

Oracle ビデオ チュートリアル

以上がOracle クエリ実行計画の要約の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。