20. Januar 2010 16:59
Vielen Dank für die Informationen.
Ich bin jetzt so vorgegangen: Ich habe mir einfach die Keys einiger wichtige Tabellen vorgenommen, wie z.B. Cust. Ledger Entries. Dort habe ich mir für den Anfang einmal die Reihenfolge der Felder in den Keys angeschaut und nach dem Eleminierungsprinzip einige Schlüssel von der Feldreihenfolge umgestellt.
Aus:
- Code:
Document No.,Document Type,Customer No.
habe ich diesen Key erstellt:
- Code:
Document No.,Customer No.,Document Type
Nach meiner Aufassung ist dieser Schlüssel besser, da es mehr Customer gibt wie Dokumententypen gibt.
Zur Umstellung der Keys habe ich das Unused Key Tool benutzt, welches mir anzeigt, welche Schlüssel nicht mehr benutzt werden. Es zeigt aber auch die Codestellen an, an denen die Schlüssel benutzt werden. Nun bin ich hingegangen und habe die Reihenfolge der Felder in den Keys geändert und gleichzeit habe ich die Codestellen geändert. Meistens wird mit SetCurrentKey gearbeitet und die Stellen lassen sich relativ leicht ändern, wenn man mit suchen und ersetzen dran geht, nachdem man die betroffenen Objekte als Textdateien ausgelesen hat.
Um die Optimierung zu überprüfen habe ich jeweils Trace-Dateien vom SQL Server und die Logs aus dem Performance Monitor von bestimmten Aktionen, wie z.B. Verkaufsrechnung buchen.
Leider stolper ich an manchen Stellen.
Ich habe hier aus Tabelle 21 den Key:
- Code:
Customer No.,Open,Positive,Due Date,Currency Code
Diesen hätte ich gerne umgestellt nach:
- Code:
Customer No.,Due Date,Open,Positive,Currency Code
An einigen Codestellen, steht allerdings sowas:
SETCURRENTKEY("Customer No.",Open,Positiv);
Ich weiss nicht recht, wie ich damit nun umgehen soll. Ich habe ja das "Due Date" nun an 2. Stelle. Dieses Feld taucht aber bei der SETCURRENTKEY-Funktion nicht auf.
Kann mir da jemand helfen?
Gruß
Matt