Para melhorar o desempenho selecionado, armazene os caminhos possíveis entre os nós em uma tabela permanente
TABLE T_Hops_Path
(
FromNode,
ToNode,
HopCount,
TotalDistance
)
Se sua estrutura de árvore não muda com frequência, você pode escrever um procedimento armazenado que gere essa tabela a cada N horas.