Esta es una respuesta a la pregunta de Kirk 'por qué no usarlo (HierarchyId)'. En comparación con la ruta materializada, en algunos casos importantes, HierarchyId parece ser menos eficiente y menos conveniente para trabajar.
La razón es simple: citando el comentario de Microsoft sobre Connect , "El problema es que las llamadas CLR, incluidos los métodos de JerarquíaID, son opacas para el optimizador de consultas. Esto es así por diseño. Sin embargo, significa que la estimación de la cardinalidad para ellos a veces puede ser bastante incorrecto."
Por otro lado, implementar la ruta materializada es muy fácil la primera vez que necesitamos hacerlo, y la próxima vez es esencialmente una tarea de copiar y pegar. Por lo tanto, obtenemos una solución más versátil y de mejor rendimiento con muy poco esfuerzo.
Así que estoy completamente de acuerdo con Paul Nielsen, quien escribió en su excelente libro titulado "Microsoft® SQL Server® 2008 Bible" de la siguiente manera: "El nuevo HierarchyID no está exento de controversia. Es nuevo y tiene mucha prensa y tiempo de demostración, pero yo" No estoy seguro de que sea un problema que necesita otra solución ".