Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
Re: Select über 2 Tables dauert mehere Minuten
30. Mai 2006, 14:18
Die Primärschlüssel beider Tabellen schliesen das Feld "SORT_ID" mit ein.
Eigentlich düften nur folgende Felder zum Primärschlüssel gemacht werden:
TRANSAKTION.ID und TRANSAKTIONDETAILS.ID
Was passiert nun bei deinem Join ?
FROM TRANSAKTION T INNER JOIN TRANSAKTIONDETAILS TD ON(T.ID = TD.TRANSAKTION_ID)
Da die Werte für das Feld "SORT_ID" hier überhaupt nicht festgelegt wurden, kann
der Primärschlüsselindex nicht für den Join herangezogen werden!!
Die Folge: der Join muss völlig ohne Indexunterstützung vom Server hergestellt werden
==> extrem lange Verarbeitungszeit.
meine Empfehlung:
TRANSAKTION.ID => Primärschlüssel
TRANSAKTION.SORT_ID => Index drauf
TRANSAKTION.IMPORT_ID => Index drauf
TRANSAKTIONDETAILS.ID => Primärschlüssel
TRANSAKTIONDETAILS.TRANSAKTION_ID => Index drauf (besonders wichtig für den JOIN)
Andreas
|