Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
Re: viele Generatoren auf einmal "holen"
15. Feb 2007, 12:06
Also ich sehe da keinen Denkfehler, sondern das dürfte das effektivste Verfahren sein.
Wenn sich ein Client also gleich 10 oder 100 Nummern reserviert, dann kann er
ohne weitere Rückfrage entsprechend viele Inserts absetzen.
Sollte der Fall eintreten, dass Client- oder Serverseitig ein Fehler auftritt, sind die Nummern eben verloren, aber das sollte nicht stören.
Auch bei einem Rollback wären alle Inserts weg und damit die gezogenen Nummern verloren.
Es ist aber beim PK nicht zwingend eine lückenlose Folge nötig.
Da auf dem Server kein Trigger benötigt wird, entfällt hier auch diese Serverseitige Belastung.
Noch effizienter wird die Sache, wenn blockweise Insert-Anweisung gesammelt abgesetzt werden.
Damit entfällt der x-fache Netzwerkverkehr.
Wenn du also 100 Nummern reserviert, dann 100 Inserts für die Mastertabelle + die Inserts für die Detailtabelle generierst (in StringListe sammeln) erreichst du die maximal mögliche Einfügegeschwindigkeit.
Andreas
|