skillup

技術ブログ

Database

SQLクエリ比較

投稿日:

クエリの比較

SQLにおいては全く同じ結果を返すのであってもその検索結果が異なるということはよくあります。

例えば下記のようなテーブルがあった場合

co_cd | district
——-+———-
001 | A
002 | B
003 | C
004 | D

co_cd | shop_id | emp_nbr | main_flg
——-+———+———+———-
001 | 1 | 300 | Y
001 | 2 | 400 | N
001 | 3 | 250 | Y
002 | 1 | 100 | Y
002 | 2 | 20 | N
003 | 1 | 400 | Y
003 | 2 | 500 | Y
003 | 3 | 300 | N
003 | 4 | 200 | Y
004 | 1 | 999 | Y

各会社ごとにメインの事業所(main_flg=’Y’)の emp_nbrを出し合い場合、結合で出す場合とサブクエリでテーブル自体を作ってしまってそこから組み立てる2通りの方法があります。

この場合、後者のサブクエリのほうが対象となる絞り込みテーブルが少ないこともあり、高速です。

※詳しくは実行計画をみないとわかりません。

概してサブクエリのほうがスピードがあるようです。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

集合としてのSQL その2

本日も前回に引き続き集合としてのSQLに入っていきます。 Contents1 完全一致のテーブル2 重複行の削除 完全一致のテーブル 下記のようなテーブル(supparts)があり、持っている部品が完 …

no image

論理設計のアンチパターン その2

今回は論理設計のアンチパターンの続きです。 今までに比べると何も意図がないというものではなく、パフォーマンスを考えて設計されているようなものが多いです。 ただし、中には絶対に許されないタイプのものもあ …

no image

論理設計のグレーノウハウ 列持ちテーブル、集計キー、多段ビュー

前回に引き続き論理設計のグレーノウハウについて。 Contents1 列持ちテーブル1.1 メリット1.1.1 シンプルな設計1.1.2 入出力のフォーマットと合わせやすい1.2 デメリット1.2.1 …

no image

ユニークキーの設定

MySQLでのユニークキーの設定に関して。 ユニークキーの設定は下記の通り。

ユニークキーを作成した後に確認するのは下記コマンドで。 …

no image

mavenのリモートリポジトリについて

JPAでO/Rマッパーに慣れてからというもの通常のSQLをごりごり書くのが億劫になってきました。 億劫というかいろいろとリスクがありますね。 問題点としてはコンパイルするときにエラーが検知できなかった …

アーカイブ