AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Performance: Interbase vs. Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

Performance: Interbase vs. Firebird

Ein Thema von Nico80 · begonnen am 8. Okt 2007 · letzter Beitrag vom 28. Mai 2010
 
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#19

Re: Performance: Interbase vs. Firebird

  Alt 9. Okt 2007, 12:27
wie schon gesagt, wenn du auf Performance wert legst, dann lege dein starttransaction und commit außerhalb der schleifen.

weiterhin wenn du getprimary key schon umständlicherweise extra abfragst, um den dann wieder hinzuschicken, dann mach
das in der insert transaktion. Einfacher (jedenfalls bei firebird): mach auf der Tabelle einen Autoincrement Trigger
(geht in IBExpert im Tabelleneditor durch doppelklick auf das pk feld unter autoincrement), so das der wert von
einem generator vergeben wird. (geht aber auch ohne ibexpert)
create generator id;

create table test
(id integer not null primary key,
bez varchar(80));

create trigger test_bi for test
active before insert position 0
as
begin
if (new.id is null) then
new.id = gen_id(id,1);
end;

Bei deinem Insert kannst du mit der returning anweisung diesen dann auch lesen

INSERT INTO TEST(BEZ) VALUES (:BEZ) returning ID;

(geht aber nur bei firebird >=2, nicht bei interbase)

damit kann der insert in einem sql abgehakt werden und brauch nicht noch weitere befehle, du
kannst aber trotzdem den vergebenen Wert auslesen.

und außerdem: wer manuell einen prepare macht, der sollte irgendwann auch den unprepare machen.
der belegt sonst speicher im server. Ist bei wenigen Datasets zwar fast egal, wird aber später mit
mehreren immer schwieriger, das im Griff zu haben. Den unprepare in der Schleife zu machen wäre
jetzt aber denkbar ungeschickt.

und noch was: ich hoffe deine get_primarykey prozedur benutzt zumindest einen generator und nicht
irgendeinen Tabelleninhalt, sonst wird dir das irgendwann im netzwerkbetrieb probleme machen.

Gruß
Holger
www.firebird-conference.com
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz