No.2ベストアンサー
- 回答日時:
1です
そうですか。通常サブクエリでのヒット件数が多い場合にはかなり有効な手法なのですが、合わなかったようですね。
単純にサブクエリが重いということはありませんか?
前者にしろ後者にしろ、サブクエリ内が全件走査を行うようではパフォーマンスの向上は見込めません。
サブクエリで得られるCODEの種類が多く、かつ1の例で
CODEに適切なインデックスが張ってある場合は、劇的なパフォーマンスの向上が見込まれます。
ご参考までに。
結果報告です。
・サブクエリ内のある項目にインデックスを作成し、最優 先のインデックスにした。
・サブクエリ内で使用していた(concatによる)文字連結
をやめた。
以上2対策とで何とかレスポンスを10秒以内で収めることが出来ました。
まだ、良いパフォーマンスとはいえないですが、対象テーブルの件数から見てもこれなら納得してもらえそうな感じです。
やはり、yamahanianさんの言われていたとおり、サブクエリが重い処理になっていたようです。
サブクエリのみで実行するとすぐに結果が返ってくるので、見落としておりました。
ありがとうございました。
No.1
- 回答日時:
こういった場合は相関副問合せという手法を使用します。
panchopancho1さんが行っているコードはおそらく
SELECT *
FROM MAINLIST
WHERE CODE IN (SELECT CODE FROM LIST WHERE...)
のようになっていますよね?
これを
SELECT *
FROM MAINLIST A
WHERE EXISTS (SELECT * FROM LIST WHERE CODE = A.CODE)
という風にしてあげます。
親SQLのテーブルに別名をつけてあげ、
その親テーブルのデータをもとに子を検索します。
こんなかんじでいかがでしょうか。
早速の返信ありがとうございます。
試してみたのですが、何分IN句でヒットしている
件数が多いせいか、劇的にパフォーマンスが向上
するというわけにはいきませんでした。
それと、EXISTSでレコードを大量に絞り込めれば
良いのですが、そういったテーブルの関係になっていない
ケースでした。
しかーし、返信いただき、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- 英語 L-PRF can be obtained by manual or automated metho 1 2022/04/08 09:39
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ビューで引数を使いたい
-
ACCESS 一番最新の日付の金額...
-
IFで条件を分岐させてのINSERT...
-
2つのテーブルを結合して合計(...
-
別のテーブルの値を抽出条件と...
-
クエリを分割せずに一つにまと...
-
SQL 重複 条件を付けて抽出したい
-
エクセル
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
2つのテーブルから条件に一致...
-
PhpMyAdminで作成して実行せよ...
-
アクセスのテーブルからエクス...
-
Accessのリンクテーブルについて
-
accessテーブル作成クエリを実...
-
Accessにインポートしたら並び...
-
SQLServer + PHP で直近に追加...
-
重複するキーから一番古い年月...
-
SELECT時の行ロックの必要性に...
-
2つの項目が重複するレコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビューで引数を使いたい
-
ACCESS 一番最新の日付の金額...
-
Accessで在庫管理を
-
IFで条件を分岐させてのINSERT...
-
DB2 業種毎に連番をつけたいの...
-
複数のテーブルから同じ条件で...
-
二つの表の項目を比較して値を...
-
SQLで○○の値以外を持っているレ...
-
select into句のトランザクショ...
-
SQLについて質問です。 テーブ...
-
大学でSQLの授業があるのですが...
-
Sql文のUpdateと副問い合わせで...
-
SQLの書き方
-
空のテーブルの判別
-
2つのテーブルを結合して合計(...
-
Accessクエリでのグループ化
-
SQL 件数取得を速くしたい
-
Insert Into Select での重複に...
-
INSERT文でサブクエリ
-
年齢分布テーブルの再集計SQL
おすすめ情報