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
は、私がどの列に索引を持っていけないなど、あなたは開始時間、終了時間、EmergencyCallのインデックスを持っていることを確認し、私を助けてください。この場合のパフォーマンスを向上させるインデックスを作成します – Ram
はい。インデックスはパフォーマンスを向上させます。それらがなければ、SQLはすべての行を調べて、それを含めるかどうかを判断する必要があります。 –