9. März 2011 13:58
Hmmm ... leider ist das Thema NAV/SQL Performance SEHR umfangreich - es gibt zig Gründe für Probleme, aber auch ebenso viele Lösungen ...
Am besten mal das Forum nach "
SQL Performance" durchsuchen; Du findest sicher einige Tipps und Empfehlungen!
Das mit dem COMMIT ist vermutlich (?) so:
Ab NAV 5.0 SP1 verwendet NAV sog. "
Buffered Inserts"; d.h. ein INSERT wird nicht mehr unmittelbar ausgeführt, sondern eben "gepuffert". Der tatsächliche INSERT erfolgt erst, wenn ...
... auf den DS wieder zugeriffen werden soll.
... ein COMMIT erfolgt.
Werden sehr VIELE Datensätze in einer Transaktion erzeugt, dann kann so ein COMMIT tatsächlich das von Dir beschriebene Problem erzeugen, weil dann eben am "Schluß" alle zig DS soz. "am Stück" geschrieben werden ...
Umgehen kann man sowas z.B. durch:
- Code:
IF [Record.]INSERT THEN;
Das impliziert ein Lesen des eben angelegten DS, d.h. der INSERT wird sofort ausgeführt.
Aaaaaber: eine Verzögerung beim COMMIT kann auch physikalische Probleme haben, z.B. im Zusammenhang mit SQL Checkpoints, etc..
Wie gesagt, das müsste man mal näher untersuchen.