Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL ottimizzato per le strutture ad albero

Dipende davvero da come intendi accedere all'albero.

Una tecnica intelligente consiste nell'assegnare a ogni nodo un id stringa, in cui l'id del genitore è una sottostringa prevedibile del figlio. Ad esempio, il genitore potrebbe essere '01' e i figli sarebbero '0100', '0101', '0102', ecc. In questo modo puoi selezionare un intero sottoalbero dal database contemporaneamente con:

SELECT * FROM treedata WHERE id LIKE '0101%';

Poiché il criterio è una sottostringa iniziale, un indice nella colonna ID velocizzerebbe la query.