Bir sorgu planı 1316 kez bir kümelenmiş dizin tarama yürütürken, diğer 1 kez yürütür dışında aynı sorgu planı üreten iki benzer sorguları var.
İki sorgu arasındaki tek fark farklı tarih ölçütleridir. Uzun süren sorgu aslında tarih ölçütlerini daraltır ve daha az veri geri alır.
Her iki sorguda da yardımcı olacak bazı dizinler belirledim, ancak sadece Kümelenmiş Dizin Tarama işlecinin neden 1316 kez yürüttüğünü, 1 kez yürüttüğü ile hemen hemen aynı olan bir sorgu üzerinde yürütmek istediğini anlamak istiyorum.
Taranan PK istatistiklerini kontrol ettim ve nispeten günceller.
Orijinal sorgu:
select distinct FIR_Incident.IncidentID
from FIR_Incident
left join (
select incident_id as exported_incident_id
from postnfirssummary
) exported_incidents on exported_incidents.exported_incident_id = fir_incident.incidentid
where FI_IncidentDate between '2011-06-01 00:00:00.000' and '2011-07-01 00:00:00.000'
and exported_incidents.exported_incident_id is not null
Bu planı oluşturur:
Tarih aralığı ölçütlerini daralttıktan sonra:
select distinct FIR_Incident.IncidentID
from FIR_Incident
left join (
select incident_id as exported_incident_id
from postnfirssummary
) exported_incidents on exported_incidents.exported_incident_id = fir_incident.incidentid
where FI_IncidentDate between '2011-07-01 00:00:00.000' and '2011-07-02 00:00:00.000'
and exported_incidents.exported_incident_id is not null
Bu planı oluşturur:
FI_IncidentDate between '2011-07-01 00:00:00.000' and '2011-07-02 00:00:00.000'
ölçütleri karşılayan yalnızca sıfır veya bir satır vardı ve o zamandan beri o aralıkta orantısız sayıda ekleme yapıldı. Bu tarih aralığı için yalnızca 1,07 yürütme gerekeceğini tahmin ediyor. Gerçekte ortaya çıkan 1,316 değil.