2

2 つのテーブルにかなりの数の行 (100 万 + 各行) があるため、実行に 2 秒かかる以下のクエリがあり、クエリを最適化するためにさらに何かできることがあるかどうか疑問に思っていました。

テーブル

tblInspection.ID bigint (主キー)

tblInspection.IsPassedFirstTime ビット (非クラスター化インデックス)

tblInspectionFailures.ID bigint (主キー)

tblInspectionFailures.InspectionID bigint (クラスター化されていないインデックス)

クエリ

SELECT TOP 1 tblInspection.ID FROM tblInspection 
                INNER JOIN tblInspectionFailures ON tblInspection.ID = tblInspectionFailures.InspectionID 
                WHERE (tblInspection.IsPassedFirstTime = 1)

実行計画 ここに画像の説明を入力

インデックスでクラスター化されたシークを実行していることがわかりますが、まだ時間がかかります

4

2 に答える 2

1

私が考えることができる唯一のことは

    SELECT  i.ID FROM 
    (select TOP 1 id from tblInspection 
     WHERE IsPassedFirstTime = 1) i
                    INNER JOIN tblInspectionFailures ON 
i.ID = tblInspectionFailures.InspectionID 
于 2012-11-26T17:09:16.877 に答える