Bonjour à tous,
J'ai tenté de trouver une réponse sur le net ou dans ce forum mais sans succès, je tente donc ma chance en posant directement ma question.
J'ai une table avec une colonne de type HierachyId et ma problématique est de trouver la requête la plus performante pour récupérer tous les enfants de plusieurs parents (root).
J'ai tenté ce type de requête :
Le retour de données est correct mais la requête est terriblement lente, pour renvoyer 100000 elements hierarchisés elle met environ 50 sec.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM [maTable] Child JOIN [maTable] Parent ON Child.[Hierarchy_Id].IsDescendantOf(Parent.[Hierarchy_Id])=1 AND Parent.ID_FK IS NULL WHERE Child.ID_FK IS NOT NULL AND Parent.ID_PK IN (SELECT ...)
Auriez-vous une solution plus perfomante à me proposer ?
Merci d'avance !
Partager