Extrem schlechte Performance in Abfrage mit Sortierung (AX)

26/01/2010 - 11:04 von Matthias Körner | Report spam
Hallo an Alle,

ich habe folgendes Problem:

In einem Listenfeld sollen einfach nur die Kundenadressen alphabetisch
sortiert angezeigt werden.
Die Adressen kommen aus zwei über ein Netzwerk (100 Mbit) verknüpften
Tabellen "Kontakt" und "Kunde", die 1:1 über die KontaktID miteinander
verknüpft sind.
In der Tabelle Kunde ist die KundenNr als Primàrschlüssel definiert, in der
Tabelle Kontakt die KontaktID.
Es sind ca. 2500 Kunden vorhanden, also keine bedeutende Menge.
Wenn ich die Daten nach der KundenNr sortiere oder die Abfrage unsortiert
laufen lasse, wird die Liste im Bruchteil einer Sekunde aufgebaut, sobals
ich aber nach Zuname sortiere, dauert der Aufbau ca. 8 Sekunden lang.
Das Feld Zuname ist indiziert, Unterdatenblatt, Autowertkorrektur etc. ist
alles deaktiviert.

In meiner Verzweiflung habe ich schon Folgendes versucht:

1. Zuname + Vorname in ein zusàtzliches Tabellenfeld übertragen, um in der
Abfrage keinerlei Operationen mehr vornehmen zu müssen
2. Die ASCII-Werte der ersten Buchstaben für die Sortierung in ein
indiziertes Long-Feld zu schreiben.

Das alles hat aber gar keine Verbesserung gebracht..

Es kann IMHO doch nicht normal sein, dass bei dieser geringen Anzahl von
Datensàtzen ein derartiger Performanceeinbruch nur wegen der Sortierung des
Namens zu verzeichnen ist.

Hier der SQL-String der Abfrage:

SELECT DISTINCTROW Kunde.KundenNr, Kontakt.KT_MCL
FROM Kunde INNER JOIN Kontakt ON Kunde.KontaktID = Kontakt.KontaktID
ORDER BY Kontakt.KT_MCL;

Mit meinem Latein bin ich inzwischen am Ende.
Hat jemand vielleicht eine Idee, wo ich noch ansetzen könnte?

Gruß
Matthias
 

Lesen sie die antworten

#1 Stefan Hoffmann
26/01/2010 - 11:25 | Warnen spam
hallo Matthias,

On 26.01.2010 11:04, Matthias Körner wrote:
Mit meinem Latein bin ich inzwischen am Ende.
Hat jemand vielleicht eine Idee, wo ich noch ansetzen könnte?


Das mußt du mal JETSHOWPLAN bemühen, um unter die Haube zu schaun, siehe

http://msdn.microsoft.com/en-us/lib...42824.aspx

Blindtest:

1. Index nur auf Kontakt.KT_MCL
2. Kombinierter Index auf Kontakt.KontaktID und Kontakt.KT_MCL


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen