2011-10-25 5 views
1

私のアプリケーションでSqlserverCeコンパクトエディションを使用しています。 私はクエリで左の結合を使用しています。 実行に時間がかかります。 は、以下のコードSqlServerCeコンパクトエディションのクエリの最適化

SELECT calllog.consolename AS consolename, 
     COUNT(consolename) AS totalcalls, 
     sub.cnt    AS emergencycalls 
FROM calllog 
     LEFT JOIN (SELECT consolename, 
         COUNT(*) AS cnt 
        FROM calllog 
        WHERE emergencycall = 'False' 
         AND (begintime >= '3/6/2011 10:52:39 AM' 
           AND endtime <= '10/25/2011 6:52:39 PM') 
        GROUP BY consolename) AS sub 
     ON calllog.consolename = sub.consolename 
WHERE (begintime >= '3/6/2011 10:52:39 AM' 
     AND endtime <= '10/25/2011 6:52:39 PM') 
GROUP BY calllog.consolename, 
      sub.cnt 
ORDER BY totalcalls ASC 

である私はcomplexty

答えて

0

を避けることができる方法

+0

は、私がどの列に索引を持っていけないなど、あなたは開始時間、終了時間、EmergencyCallのインデックスを持っていることを確認し、私を助けてください。この場合のパフォーマンスを向上させるインデックスを作成します – Ram

+0

はい。インデックスはパフォーマンスを向上させます。それらがなければ、SQLはすべての行を調べて、それを含めるかどうかを判断する必要があります。 –