Это ответ на вопрос Кирка «почему бы не использовать его (HierarchyId)». По сравнению с материализованным путем, в некоторых важных случаях HierarchyId кажется менее производительным и менее удобным для работы.
Причина проста: цитата из комментария Microsoft к Connect : «Проблема в том, что вызовы CLR, включая методыierarchyID, непрозрачны для оптимизатора запросов. Это сделано специально. Однако это означает, что оценка количества элементов для них иногда может быть весьма неправильно."
С другой стороны, реализация материализованного пути очень проста в первый раз, когда нам нужно это сделать, и в следующий раз, по сути, это задача копирования и вставки. Таким образом, мы получаем более универсальное и более эффективное решение без особых усилий.
Поэтому я полностью согласен с Полом Нильсеном, который написал в своей превосходной книге «Библия Microsoft® SQL Server® 2008» следующее: «Новый HierarchyID не лишен противоречий. Он новый и получает много времени для прессы и демонстраций, но я» Я не уверен, что это проблема, которая нуждается в другом решении. "