Lograr jerarquía, relación padre / hijo de una manera efectiva y fácil.

Tengo una mesa como

create table site
(
site_Id int(5),
parent_Id int(5),
site_desc varchar2(100)
);

Significado de los campos:

ID de sitio: ID de los sitiosID de padre: ID de padre del sitiosite_desc: aunque no es relevante para la pregunta pero tiene la descripción del sitio

El requisito es que si tengo un site_id como entrada, y necesito todos los identificadores etiquetados debajo del sitio. Por ejemplo:

                    A
                   / \
                  B   C
                / | \ /\
               D  E F G H
              /\
             I  J

Todos los nodos son el site_Id.

La tabla contiene datos como este:

Site_id  | Parent_ID  |  site_desc
_________|____________|___________
 A       |   -1       |   
 B       |    A       |
 C       |    A       |
 D       |    B       |
 E       |    B       |
 F       |    B       |
 I       |    D       |
 J       |    D       |

......

A es el padre de B y C y así sucesivamente.

Si B es la entrada dada, entonces la consulta debe buscar D, E, I, F, J

Actualmente se logra a través de múltiples consultas en un bucle, pero estaba pensando en lograr esto en un número mínimo de consultas.

Lo que estoy haciendo actualmente es:

voto negativo

El algoritmo va así:

Initially create a data set object which you will populate, by fetching data from the data base. 
Create a method which takes the parent id as parameter and returns its child nodes if present, and returns -1, if it doesnt have a child. 
Step1: Fetch all the rows, which doesn't have a parent(root) node. 
Step2: Iterate through this result. For example if prod1 and prod2 are the initial returned nodes, in the resultset. 
Iterating this RS we get prod1, and we insert a row in our DataSET obj. 
Then we send the id of prod1 to getCHILD method, to get its child, and then again we iterate the returned resultset, and again call the getCHILD method, till we dont get the lowest node.

Necesito la mejor técnica optimizada dentro de la restricción de mi modelo de datos. Siéntase libre de responder si tiene alguna sugerencia.
Por favor sugiera cualquier cosa. Gracias por adelantado.

Respuestas a la pregunta(10)

Su respuesta a la pregunta