「LineItemsMap」テーブルが約 100 万行に増え、タイムリーにこのクエリを実行すると問題が発生します。私が作成できるインデックス、またはクエリを使用したより良いロジックに関する提案は大歓迎です。
select
Id,
[Description],
SUM(CASE WHEN t1.compliant = 1 THEN 1 ELSE 0 END) as Compliant,
SUM(CASE WHEN t1.compliant = 0 THEN 1 ELSE 0 END) as NonCompliant,
LastChecked
from lineitems as t0
left outer join lineitemsmap as t1 on t0.id = t1.lineitemid
left outer join art_blob as t2 on t2.art_blob_id = t1.blobid
left outer join art_asset as t3 on t3.art_asset_id = t2.art_asset_id
left outer join lineitemexceptions as t4 on t4.assetid = t3.art_asset_id and t4.lineitemid = t1.lineitemid
where t0.active = 1 and t4.assetid is null
group by t0.id, t0.[description], t0.lastchecked
XML で保存された実行計画への リンクは次のとおりです: http://codepaste.net/5xcpcw テーブル構造へのリンクは次のとおりです: http://codepaste.net/pnqx6e