-4

次のクエリを実行していますが、時間がかかりすぎます。クエリを高速化する方法や、クエリの記述方法を変更する方法はありますか?

助けてください。

SELECT *
FROM   ProductGroupLocUpdate WITH (nolock)
WHERE  CmStatusFlag > 2
       AND EngineID IN ( 0, 1 )
       AND NOT EXISTS (SELECT DISTINCT APGV.LocationID
                       FROM CM_ST_ActiveProductGroupsView AS APGV WITH(nolock)
                       WHERE APGV.LocationID = ProductGroupLocUpdate.Locationid);
4

1 に答える 1

0

結合でクエリを書き直してみてください

SELECT PGLU.* from ProductGroupLocUpdate PGLU WITH (NOLOCK) 
LEFT JOIN CM_ST_ActiveProductGroupsView APGV WITH (NOLOCK) 
        ON PGLU.LocationId = APGV.LocationID
WHERE APGV.LocationID IS NULL AND CmStatusFlag>2 AND EngineID IN (0,1)

テーブル内のデータ量に応じて、(両方のテーブルの) LocationId、CmStatusFlag、および EngineID にインデックスを追加してください。

于 2012-11-16T20:26:16.173 に答える