Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Optimiertes SQL für Baumstrukturen

Es hängt wirklich davon ab, wie Sie auf den Baum zugreifen.

Eine clevere Technik besteht darin, jedem Knoten eine Zeichenfolgen-ID zuzuweisen, wobei die ID des Elternknotens eine vorhersagbare Teilzeichenfolge des untergeordneten Knotens ist. Zum Beispiel könnte der Elternteil '01' sein und die Kinder wären '0100', '0101', '0102' usw. Auf diese Weise können Sie einen ganzen Teilbaum aus der Datenbank auf einmal auswählen mit:

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

Da das Kriterium eine anfängliche Teilzeichenfolge ist, würde ein Index für die ID-Spalte die Abfrage beschleunigen.