sql >> データベース >  >> RDS >> Oracle

クエリの説明プランをどのように解釈しますか?

    フルテーブルスキャンは悪く、インデックスアクセスは良いというコメントを見ると、私は身震いします。全表スキャン、インデックス範囲スキャン、高速全インデックススキャン、ネストされたループ、マージ結合、ハッシュ結合などは、アナリストが理解し、データベース構造とクエリの目的に関する知識と組み合わせる必要がある単なるアクセスメカニズムです。意味のある結論に達するために。

    フルスキャンは、データセグメント(テーブルまたはテーブル(サブ)パーティション)のブロックの大部分を読み取る最も効率的な方法であり、パフォーマンスの問題を示すことがよくありますが、それはコンテキスト内にのみあります。それがクエリの目標を達成するための効率的なメカニズムであるかどうかの評価。データウェアハウスおよびBI担当者として言えば、パフォーマンスに関する私の一番の警告フラグは、インデックスベースのアクセス方法とネストされたループです。

    したがって、Explain Planの読み方のメカニズムについては、Oracleのドキュメントが優れたガイドです。http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/ex_plan.htm#PFGRF009

    >

    パフォーマンスチューニングガイドもよく読んでください。

    また、「カーディナリティフィードバック」のグーグルもあります。これは、説明プランを使用して、クエリのさまざまな段階でのカーディナリティの推定値を、実行中に経験した実際のカーディナリティと比較できる手法です。ヴォルフガングブライトリングがこの方法の作者だと私は信じています。

    つまり、要点は、アクセスメカニズムを理解することです。データベースを理解します。クエリの意図を理解します。経験則を避けてください。



    1. MicrosoftAccessを使用した学生データベースの作成

    2. エラー「ORA-01790:式は対応する式と同じデータ型である必要があります」を修正しました

    3. web.configasp.netのOracleデータベース接続

    4. PostgreSQLデータをリモートサイトに複製する方法