Unter Refactoring ist meine SQL-Abfrage, die mehr als 10 Minuten dauert und noch läuft ....Hilfe einer SQL-Abfrage
select DISTINCT Auditdata.ID,ns.ProviderMaster_ID as CDRComment
from Auditdata AuditData
inner join AuditMaster am
on am.ID=AuditData.AuditMaster_ID
inner join HomeCircleMaster hcm
on hcm.Ori_CircleMaster_ID=am.CircleMaster_ID
and hcm.Ori_ServiceTypeMaster_ID=1
and hcm.Dest_ServiceTypeMaster_ID=1
inner join NoSeriesMaster ns
on (ns.CircleMaster_ID=am.CircleMaster_ID
or ns.CircleMaster_ID=hcm.Dest_CircleMaster_ID)
and ns.ProviderMaster_ID<>am.ProviderMaster_ID
and ns.ServiceTypeMaster_ID=1
INNER JOIN NoSeriesMaster_Prefix PD
ON SUBSTRING(AuditData.CallTo, 1, CONVERT(INT, PD.PrefixLen)) = PD.PrefixNo
AND LEN(AuditData.CallTo) = CONVERT(VARCHAR(10), CONVERT(INT, PD.PrefixLen) + CONVERT(INT, PD.AfterPrefixLen))
AND PD.PrefixNo + ns.NoSeries = LEFT(AuditData.CallTo, len(ns.NoSeries) + CONVERT(INT, PD.PrefixLen))
where AuditData.TATCallType is null
and AuditData.AuditMaster_ID=74
and PrefixType='CALL'
Spalte evey in der Innen verwendet join verwendet, um einen Index und Spalten trotzte in denen Klausel auch definiert Index ...
ist es eine Möglichkeit, über Abfrage zu fasten
Bitte helfen Sie mir ...
Thanx
Liebe Freunde im modifizierten meine SQL-Abfrage ist sein wie folgen noch viel Zeit in Anspruch nehmen Gegen 15000000
modifizierte SQL Query auszuführen sind wie folgt:
select DISTINCT Auditdata.ID,ns.ProviderMaster_ID as CDRComment from Auditdata AuditData inner join AuditMaster am on am.ID=AuditData.AuditMaster_ID inner join HomeCircleMaster hcm on hcm.Ori_CircleMaster_ID=am.CircleMaster_ID and hcm.Ori_ServiceTypeMaster_ID=1 and hcm.Dest_ServiceTypeMaster_ID=1 inner join NoSeriesMaster ns on (ns.CircleMaster_ID=am.CircleMaster_ID or ns.CircleMaster_ID=hcm.Dest_CircleMaster_ID) and ns.ProviderMaster_ID<>am.ProviderMaster_ID and ns.ServiceTypeMaster_ID=1 INNER JOIN NoSeriesMaster_Prefix PD ON Auditdata.callto like PD.PrefixNo + '%' AND AuditData.CallTolen = PD.PrefixLen + PD.AfterPrefixLen AND PD.PrefixNo + ns.NoSeries = LEFT(AuditData.CallTo, NoSeriesLen + PD.PrefixLen)
where AuditData.TATCallType is null and AuditData.AuditMaster_ID=74 and PrefixType='CALL'
Nun, was kann ich tun? ?
Lieber Freund
meine Abfrage nimmt viel Zeit, weil unten Teil des Codes NoSeriesMaster enthalten 4000 Zeilen und Auditdata 15000000 Reihen mit inneren Verknüpfung jedes callto Spalten Datensatz in Auditdata mit dem Noseriesmaster abgestimmt
INNER JOIN NoSeriesMaster_Prefix PD
AUF SUBSTRING (AuditData.CallTo, 1, KONVERT (INT, PD.PrefixLen)) = PD.PrefixNo
UND LEN (AuditData.CallTo) = C ONVERT (VARCHAR (10), KONVERTIEREN (INT, PD.PrefixLen) + CONVERT (INT, PD.AfterPrefixLen))
UND PD.PrefixNo + ns.NoSeries = LINKS (AuditData.CallTo, len (ns.NoSeries) + CONVERT (INT, PD.PrefixLen))
wo AuditData.TATCallType null ist und AuditData.AuditMaster_ID = 74 und PrefixType = 'CALL'
Lieber Freund, Wenn ich unter 2 Abfrage ausgeführt ist sowohl die Ausführungszeit verschiedene ... select id von Auditdata wo substring (callto, 1,2) '91' = und len (callto) = 12 \t (Diese Abfrage ausführen, in 25 Sekunden) select-ID von Auditdata wo callto wie '91%‘und calltolen = 12 (diese Abfrage ausführen in 33 Sekunden) \t y diese verschiedenen Funktionen in – John