Denna selectats får ut några tusen träffar beroende på antalet på c.empno. Ja förmodar att du har ett index? Hej. Uffe:Trimma Oracle SELECT-sats
50,000 träffar om man sätter den på 2
2,000 träffar om man sätter den på 50
Sökningen tar allt mellan en halv minut och 3 minuter.
Är de nån som ser hur man kan 'trimma' denna selectsats:
<code>
SELECT c.compid FROM Company c , Company_attr ca, geo_lu glu
WHERE
c.empno > '50'
AND c.country = 'SWE'
AND c.compid = ca.compid (+)
AND ca.attrcode (+) = '23'
AND c.geo = glu.code
AND glu.areacode = '1'
AND NOT EXISTS (
SELECT 1 FROM contact_trail ct, emp_adm ea
WHERE ct.compid = c.compid
AND ct.emp = ea.emp
AND ea.team = '301'
AND (ct.actiontype = '1'
OR ct.actiontype = '4'
OR ct.actiontype = '5')
AND ct.donedate > '01/05/2003'
)
ORDER BY compid
</code>Sv: Trimma Oracle SELECT-sats
Annars kan du ju börja med att göra ett sådant! Minskar response tiden väldigt mycket!Sv: Trimma Oracle SELECT-sats
Lite funderingar:
Vad finns det för index ?
Har du gjort en explain plan ?
Används de index som finns ?
Finns det index på compid ?
Om inte så lär ju "ORDER BY compid" ta rätt så mycket kraft.
Om nedanstående fält ingår i index, är de rätt datatyper ?
- AND ct.donedate > '01/05/2003'
Oracle konverterar troligsvis ct.donedate till sträng = index används förmodligen inte.
Om datatypen är date i tabellen, skriv istället :
ct.donedate > to_date('01/05/2003', 'DD/MM/YYYY')
- Är dessa fält strängar i tabellen ?
Om inte så konverter Oracle troligtvis till sträng = index används förmodligen inte,
ta bort fnuttarna.
- c.empno
- ca.attrcode
- glu.areacode
- ea.team
- ct.actiontype
/UffeSv: Trimma Oracle SELECT-sats
Jag är inte databasadministratör, och databasen ligger i en annan byggnad.
Jag har inte gjort någon explain plan(execution plan?). Men index finns, de vet jag. Dock över vad och så kan jag inte säga.
DoneDate = Date
c.empno = number
ca.attrcode = number
glu.areacode = number
ea.team = number
ct.actiontype = number
Jag testade att ändra till to_date, men de öka söktiden med en 3-6%,
Och när jag tog bort fnuttarna så ökade de med en 2-3%
Så de var inte så bra,
Men däremot när jag tog bort order by compid så halverade(!) de söktiden, skitbra!