Einzelnen Beitrag anzeigen

Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#1

SELECT via Stored Procedure

  Alt 13. Apr 2011, 20:50
Datenbank: Firebird • Version: 2.1 • Zugriff über: FIBPlus
Im Thread http://www.delphipraxis.net/94737-st...erationen.html empfiehlt alzaimar:
Zitat:
Wir verwenden pro (logischer) Tabelle genau eine Stored Procedure mit einem Parameter 'Action', der angibt, ob man einfügen, löschen und verändern möchte. Nach dem 'Action'-Parameter folgen dann die ganzen Parameter für die Operation.
Das ganze habe ich auch gemacht, so dass für jede logische Tabelle bei mir nun zwei SPs bestehen. Eine zum Lesen der Tabellendaten und eine zum insert/update/delete. Speziell das Lesen macht mir nun aber Sorgen. Eine typische Lese-SP sieht ja in etwa so aus:
Code:
  for select a,
             b,
             ...
             x
  from tabelle
  into :a,
       :b,
       ...
       :x
  do begin
    /* further action */
    suspend;
  end;
Der Klient besorgt sich seine Daten dann via:
Code:
select a,b,...,x from tabelle where a=5 and c=7;
Dieser Aufruf dauert bei einer Tabelle mit ca. 25000 zu lange. Was wahrscheinlich daran liegt, dass das WHERE in die SP müßte um besser zu arbeiten. So aber wird durch die SP erstmal die komplette Tabelle durchgeackert und dann erst das WHERE angewendet. Wie kann man nun den WHERE-Clause an die SP übergeben?
  Mit Zitat antworten Zitat