Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: Frage an die Experten für Sortier-Algo-Optimierung
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.
|
|
Zitat
|