Ich habe die folgende einfache Abfrage mit 2 Tabellen Joins und einer WHERE
Klausel.So erhöhen Sie die Leistung der einfachen T-SQL-Abfrage - mit langen Arbeitszeiten. Bitte....!
Ich habe bereits die Schlüsselfügefelder sowie das WHERE
Klauselfeld indiziert.
Diese 2 Tabellen haben etwa 123 Millionen Zeilen, was ziemlich groß ist. Es dauert ungefähr 7/8 Stunden, um die vollständige Abfrage unten zu vervollständigen. Ich indizierte und nicht sicher, was anderes zu tun, da es so eine einfache Abfrage mit JOIN
& WHERE
Klauseln:
insert into dbo.IMS_CLAIMS(CLAIM_ID
,DX_CLAIM_ID
,SVC_SEQ_NBR
,SVC_DT
,ALLWD_AMT
,BILL_AMT
)
select h.CLAIM_ID
,h.DX_CLAIM_ID
,s.SVC_SEQ_NBR
,h.SVC_DT
,s.ALLWD_AMT
,s.BILL_AMT
from [2016Q4_VITALS_EXPORT_HEADERS] as h
inner join [2016Q4_VITALS_EXPORT_SERVICE] as s
on h.claim_id = s.claim_id
where cast(SVC_DT as date) >= '2015-10-01'
and cast(SVC_DT as date) <= '2016-11-30';
Geschätzten Ausführungsplan:
Welche Indizes sind 2016Q4_VITALS_EXPORT_SERVICE? –
Warum müssen Sie Felder als Datum umwandeln? Wie werden diese Daten gespeichert? –
Versuchen Sie, den Tabellenscan zu vermeiden, indem Sie einen Index dafür erstellen. das spart viel I/O, weil dicke Pfeile = viele Reihen bedeuten. Diese RID-Suche kann mit einem gruppierten Index optimiert werden. https://blogs.msdn.microsoft.com/craigfr/2006/06/30/bookmark-lookup/ –