Hallo,
ich hab eine Prozedur in Firebird geschrieben um Datensätze zu kopieren.
In dem Fall wären es Anzeigeoptionen für Wirkstoffe.
Diese kann man mit der Prozedur von einem Werk in ein anderes kopieren.
Das geht schon relativ schnell ca. 20.000-25.000 Inserts pro Sekunde.
Meine Frage, könnte man das noch optimieren bzw. noch schneller machen.
Hat da jemand eine Idee?
Code:
procedure KOPIERE_ANZEIGEOPTIONEN ( X_QUELLE_WIRKSTOFF type of column WIRK_ANZEIGEOPTIONEN.WIRKSTOFF,
X_ZIEL_WIRKSTOFF type of column WIRK_ANZEIGEOPTIONEN.WIRKSTOFF,
X_QUELLE_WERKNR type of column WIRK_ANZEIGEOPTIONEN.WERKNR,
X_ZIEL_WERKNR type of column WIRK_ANZEIGEOPTIONEN.WERKNR)
as
begin
delete from WIRK_ANZEIGEOPTIONEN WA
where WA.WIRKSTOFF = :X_ZIEL_WIRKSTOFF and
WA.WERKNR = :X_ZIEL_WERKNR;
insert into WIRK_ANZEIGEOPTIONEN (WERKNR, WIRKSTOFF, ANZEIGE, DRUCK)
select :X_ZIEL_WERKNR, :X_ZIEL_WIRKSTOFF, WA.ANZEIGE, WA.DRUCK
from WIRK_TIERART WA
where WA.WIRKSTOFF = :X_QUELLE_WIRKSTOFF and
WA.WERKNR = :X_QUELLE_WERKNR;
end