Hallo ,
ich habe so ein interessantes Problem. Ich verwende Bind Variablen in Delphi und auf Datanbankseite wird Database Link (@dblink) verwendet um aus einer Tabelle Daten geholt zu werden. Wenn ich
SQL SELECT-Abfrage so schicke , es ist schnell :
Code:
SELECT
DLGH_START_D Datum,
TRUNC((d.DLGH_ENDE_D - d.DLGH_START_D) * 24 * 60)||' Min '||
TRUNC(MOD(((d.DLGH_ENDE_D - d.DLGH_START_D) * 24 * 3600), 60))||' Sek' Dauer
FROM
dialoghistory d
WHERE
d.DLGH_PARAMETER_C = 'Name of Parameter' AND <--
d.dlgh_funktion_c = 'SQLS' AND
d.DLGH_START_D > '01.02.2020' <--
order by 1
aber diese
SQL Abfrage mit Bind Variablen dauert ewig:
Code:
SELECT
DLGH_START_D Datum,
TRUNC((d.DLGH_ENDE_D - d.DLGH_START_D) * 24 * 60)||' Min '||
TRUNC(MOD(((d.DLGH_ENDE_D - d.DLGH_START_D) * 24 * 3600), 60))||' Sek' Dauer
FROM
dialoghistory d
WHERE
d.DLGH_PARAMETER_C = :B_Name AND <--
d.dlgh_funktion_c = 'SQLS' AND
d.DLGH_START_D > :Datum <--
order by 1
Delphi Code bereinigt:
Code:
qry := TFDQuery.CreateSQL(Application, sSqlText_.Text);
with qry do begin
...
Param.AsString := value; //Hier die Wert von Bind Variable setzen
...
Open; //Hier wird lange hängen geblieben ~ 1 Stunde . ohne Bind Variablen 1 Sekunde
Es liegt vermutlich an dblink, aber genau was das ist und wie ich es umgehen kann, keine Idee