タグ

結合に関するa_t_o_a_t_oのブックマーク (3)

  • SQLチューニングの必須知識を総ざらい(後編)

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前編に引き続き、SQLチューニングを行うために必要な基礎知識として、アクセスするデータ・ブロック数に大きな影響を与える結合方法の種類と、オプティマイザの実行計画の決定に影響を与える統計情報、ヒントについて説明していきます。 結合方法の種類 正規化されたデータベースでは、必要なデータを得るために複数の表からデータを取得、ひも付ける(結合する)処理が数多く発生します。表を結合する方法にはいくつかの種類が

    SQLチューニングの必須知識を総ざらい(後編)
  • 表の結合を極めるチューニング・テクニック

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前回までは、索引に関するチューニング・テクニックを説明しました。今回からは表の結合に関するパフォーマンス向上方法を考えてみます。結合処理は、正規化されたデータベースでは、必ず必要になる処理であり、パフォーマンスが問題となりやすい部分でもあります。ここでは、参照する表の件数、絞り込み条件の有無などを変更し、結合の種類によって処理時間、アクセスブロック数などがどのように変わるか、実例を挙げて説明していき

    表の結合を極めるチューニング・テクニック
  • 明示的な JOIN 句でプランナを制御する

    10.3. 明示的な JOIN 句でプランナを制御する PostgreSQL 7.1 から明示的な JOIN 構文を使って問い合わせプランナをある程度制御できるようになりました。どうしてこういうことが問題になるのか、まずその背景を見る必要があります。 単純な問い合わせ、たとえば SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id; では、プランナは自由に与えられたテーブルをいろんな順で結合することができます。 たとえば、WHERE 条件の a.id = b.id を使ってまず A と B を結合し、他の WHERE 条件を使ってその結果に C を結合するといった計画を立てることができます。あるいは、B と C を結合し、その結果に A を結合することもできます。 あるいは、A と C を結合し、その結果に B を結合することもで

  • 1