Материализованный шаблон пути VS Hierarchyid

Я читаю библию SQL Server 2008, и в ней говорится, что шаблон материализованного пути значительно быстрее, чем иерархический идентификатор. Это правда? Как я могу заставить иерархию иметь равную или лучшую производительность.


person Luke101    schedule 22.04.2010    source источник


Ответы (2)


В главе объясняются три метода проектирования и запроса иерархий: пары смежности, материализованный путь и идентификатор иерархии. Это три решения одной и той же проблемы, так что да, имеет смысл сравнить эти три метода. Правда в том, что материализованный путь является самым быстрым, но пары смежности могут решать больше типов проблем иерархии. HierarchyID неуклюж, его сложно запрашивать, и, если следовать рекомендации MSFT, он сохраняет только относительную позицию, а не ключ, поэтому он менее надежен.

person Paul Nielsen    schedule 24.04.2010
comment
Хех... Раньше я так думал о типе данных HierarchyID и его методах. Попользовавшись им всего день, я не нахожу ничего из того, что вы сказали о нем, неуклюжим, трудно запрашиваемым. Если поддерживать его в той же таблице, что и список Adjacency, я считаю, что он достаточно надежен и не снижает производительность, как утверждают большинство. Думаю, мне придется покопаться в Библии SQL Server 2008 и посмотреть, что случилось. Я также настраиваю тесты на несколько миллионов строк между HierarchyID и Nested Sets. - person Jeff Moden; 04.10.2011
comment
Пара смежности или самосоединение с выражением CTE решили мою проблему, когда мне нужно было получить список отраслевых и практических кодов. Спасибо, Пол! - person Vishnoo Rath; 25.03.2013

Вы имеете в виду материализованный путь против вложенных наборов или? Шаблон материализованного пути может использовать тип данных hiearchyid. Нет смысла сравнивать скорость шаблона и типа данных.

person Greg    schedule 23.04.2010
comment
Да, в библии sql server 2008 - они сравнивают шаблон материализованного пути и иерархический идентификатор. Несмотря на то, что иерархический идентификатор использует материализованный путь, он не полностью использует все его возможности. Итак, автор сравнил их бок о бок и сказал, что материализованный путь гораздо более эффективен, чем иерархический. Я не понимаю, как это может быть! - person Luke101; 24.04.2010