Consulta de datos de estructura de árbol en SQL Server

Tengo una mesaPerson que tiene 3 columnas:Id, Name, ParentId dóndeParentId es elId de la fila padre.

Actualmente, para mostrar todo el árbol, tendría que recorrer todos los elementos secundarios hasta que no haya más elementos secundarios. No parece demasiado eficiente.

¿Existe una forma mejor y más eficiente de consultar estos datos?

Además, ¿existe una mejor manera de representar esta estructura similar a un árbol en una base de datos de SQL Server? ¿Un diseño alternativo para mi mesa / base de datos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta