Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#8

AW: Frage an die Experten für Sortier-Algo-Optimierung

  Alt 30. Sep 2013, 12:56
Im Prinzip kann man die Aufgabe, die Knoten vorsortiert zu liefern, auch dem Server aufbürden.
Code:
create procedure P_BAUM_SELECT (
    APARENT_ID integer)
returns (
    ID integer,
    ID_PARENT integer,
    NAME varchar(40),
    TYP integer)
as
begin
  if (aparent_id is null) then
  begin
    /* Aufruf vom Client */
    for select id, id_parent, name, typ
    from      t_baum
    where     (id = id_parent)
    into      :id, :id_parent, :name, :typ
    do begin
      suspend;
      for select id, id_parent, name, typ
      from      p_baum_select(:id)
      into     :id, :id_parent, :name, :typ
      do begin
        suspend;
      end
    end
  end
  else
  begin
    /* Rekursion */
    for select id, id_parent, name, typ
    from      t_baum
    where     (id_parent = :aparent_id)
    into      :id, :id_parent, :name, :typ
    do begin
      suspend;
      for select id, id_parent, name, typ
      from      p_baum_select(:id)
      into      :id, :id_parent, :name, :typ
      do begin
        suspend;
      end
    end
  end
end
Wenn die Root-Knoten durch (id_parent is null) gekennzeichnet wären, könte die Abfrage noch etwas schneller sein.
  Mit Zitat antworten Zitat