1

2 つのテーブルを結合するクエリを作成する場合。クエリを作成する 2 つの方法を考えました。以下は簡単な例です。どちらが早いか教えてください。

SELECT t1.a,
       t2.a
FROM   table1 t1
       JOIN table2 t2
         ON t1.b = t2.b
WHERE  t2.c = 'test' 

また

SELECT t1.a,
       t2.a
FROM   table1 t1
       JOIN (SELECT a, b
             FROM   table2
             WHERE  c = 'test') t2
         ON t1.b = t2.b 
4

3 に答える 3

5

彼らはまったく同じ計画を立てる必要があります。

SQL Server は、一方を他方に簡単に変換します。ただし、実行計画を確認することが、確実に知る唯一の方法です。

于 2012-10-09T07:58:28.910 に答える
1

それは、データとデータ構造に依存します。

SSMS の [クエリ] メニューの [実際の実行計画を含める] オプションを使用して、自分で調べることができます。

ただし、最初のオプションの方が明確だと思います。

さらに、書かれている 2 番目のクエリは実際には機能しません。

于 2012-10-09T07:56:51.973 に答える
0

table1.id および table2.id 列に適切なインデックスがある場合、最初のクエリのパフォーマンスが向上すると思います。

于 2012-10-09T09:14:26.817 に答える