4つのテーブルをすべて結合しようとすると次のクエリが動作しません(実行に1時間以上かかります。 表1,2 1,3が結合されているときに動作します。表1,2を試すと、& 4が結合されますが、下の4つの表をすべて結合しようとした場合は動作しません。SQL多重ジョイントが期待どおりに動作しない
注: 1)RIdは表3にはありません。 2)表4ではMIdは使用できません。
ありがとうございました。
4つのテーブルをすべて結合しようとすると次のクエリが動作しません(実行に1時間以上かかります。 表1,2 1,3が結合されているときに動作します。表1,2を試すと、& 4が結合されますが、下の4つの表をすべて結合しようとした場合は動作しません。SQL多重ジョイントが期待どおりに動作しない
注: 1)RIdは表3にはありません。 2)表4ではMIdは使用できません。
ありがとうございました。
クエリプランを表示する権限がないと述べたので、各テーブルの結合を分割してみてください。どのテーブル結合がレコードの取得に時間がかかっているかを確認することもできます。そこから、時間がかかる理由をデータで調べることができます。表3と表4の列キーが使用できないことが原因である可能性がありますか?
WITH Tab1_2 AS
(SELECT r.ID, r.MId, r.RId, r.F_Name, r.F_Value, fe.FullEval, fe.date
FROM Table1 as r
INNER JOIN Table2 fe
ON r.ID = fe.RClId
AND r.MId = fe.MId
AND r.RId = fe.RId
WHERE ... -- place your conditions if any
),
Tab12_3 AS
(SELECT t12.*, m.Name
FROM Tab1_2 t12
INNER JOIN Table3 as m
ON t12.MId = m.MId
WHERE ... -- place your conditions if any
),
Tab123_4 AS
(SELECT t123.ID, t123.MId, t123.RId, t123.F_Name, t123.F_Value, t123.FullEval, rc.CC
FROM Tab12_3 t123
INNER JOIN Table4 as rc
ON t123.RId = rc.RId
AND t123.Date = rc.Date
WHERE ... -- place your conditions if any
)
SELECT *
FROM Tab123_4 t1234
こんにちは。推奨していただきありがとうございます。 残念ながら、変更を加えてほぼ1時間実行しても結果がなかったため、クエリを停止する必要がありました。 注:表1,2&3に参加することができ、2分で結果を見ることができます。私もテーブル1,2&4に参加することができ、わずか2分で結果を見ることができます。 それはちょうど私がすべての4つのテーブルに加わることを試みるとき私は損失にある!! :( – user8419075
私は最終的に次のエラーでほぼ2時間クエリを実行しました: ファイルグループ 'DEFAULT'のディスク領域が不足しているため、データベース 'TEMPDB'の新しいページを割り当てることができませんでした。 – user8419075
「内部結合」の代わりに「LEFT JOIN」を使用してください –
「期待通りに動作しません」とはどういう意味ですか? – LONG
問題点は何ですか?あなたは空のテーブルを受け取りますか?クエリがクラッシュしていますか? –