SQL Server 2008 R2 についての質問です
私は DBA ではありません。私は時々 SQL を書かなければならない Java 開発者です。(ほとんどコードに埋め込まれています)。ここで何か間違ったことをしたかどうか、もしそうなら、それが再び起こらないようにするにはどうすればよいかを知りたい.
Q1:
SELECT something FROM (SELECT * FROM T1 WHERE condition1) JOIN ...
第 1 四半期には 14 件の参加がありました
Q2 は Q1 と同じですが、1 つの例外があります。(SELECT * FROM T1 WHERE condition1) が前に実行され、一時テーブルに格納されます。
これは相関サブクエリではありません。
Q2:
SELECT * INTO #tempTable FROM T1 WHERE condition1
SELECT something FROM #tempTable JOIN ...
ここでも 14 人が参加します。
今私を困惑させているのは、Q1が2分以上かかったことです(キャッシングを避けるために数回試しました)が、Q2(両方のクエリを組み合わせる)は2秒かかりました!!! 何を与える?