我需要幫助來優化此查詢。在存儲過程中,該部分執行1小時(所有過程需要執行2個)。過程適用於大量數據。查詢適用於兩個臨時表。兩者都使用索引:如何優化緩慢的SQL查詢
create unique clustered index #cx_tDuguje on #tDuguje (Partija, Referenca, Konto, Valuta, DatumValute)
create nonclustered index #cx_tDuguje_1 on #tDuguje (Partija, Valuta, Referenca, Konto, sIznos)
create unique clustered index #cx_tPotrazuje on #tPotrazuje (Partija, Referenca, Konto, Valuta, DatumValute)
create nonclustered index #cx_tPotrazuje_1 on #tPotrazuje (Partija, Valuta, Referenca, Konto, pIznos)
這是一個查詢:
select D.Partija,
D.Referenca,
D.Konto,
D.Valuta,
D.DatumValute DatumZad,
NULLIF(MAX(COALESCE(P.DatumValute,@NextDay)), ,@NextDay) DatumUpl,
MAX(D.DospObaveze) DospObaveze,
MAX(D.LimitMatZn) LimitMatZn
into #dwkKasnjenja_WNT
from #tDuguje D
left join #tPotrazuje P on D.Partija = P.Partija
AND D.Valuta = p.Valuta
AND D.Referenca = p.Referenca
AND D.Konto = P.Konto
and P.pIznos < D.sIznos and D.sIznos <= P.Iznos
WHERE 1=1
AND D.DatumValute IS NOT NULL
GROUP BY D.Partija, D.Referenca, D.Konto, D.Valuta, D.DatumValute
我和執行計劃,但我沒有啓用它張貼在這裏。
謝謝...已經與客戶討論過這個問題,並且會再次嘗試解釋,但是現在他們想要使用存檔數據......數以百萬計的數據。不過謝謝。 – Nina
然後添加一個臨時數據表(或物化視圖),其中包含間隔列表的兩列(我猜這就是'...和P.pIznos
knb