问题 物化路径模式VS Hierarchyid


我正在阅读SQL server 2008圣经,它说物化路径模式比hierarchyid快得多。这是真的吗?如何使hierarchyid具有相同或更好的性能。


2081
2018-04-22 23:36


起源



答案:


本章介绍了设计和查询层次结构的三种方法:Adjacency Pairs,Materialized Path和HierarchyID。这是针对同一问题的三种解决方案,所以是的,比较这三种方法是完全合理的。事实是物化路径是最快的,但是邻接对可以解决更多类型的层次问题。 HierarchyID笨拙,难以查询,并且,如果您遵循MSFT的建议,它只存储相对位置,而不是密钥,因此它不太健壮。


16
2018-04-24 00:33



嘿......我曾经认为关于HierarchyID数据类型及其方法。使用它一天后,我没有发现你所说的任何笨拙,难以查询的内容。如果与Adjacency列表保持在同一个表中,我发现它非常强大,而不是大多数人声称的性能负担。我猜我将不得不深入研究“SQL server 2008 Bible”并看看它是什么。我还在HierarchyID和嵌套集之间设置了几百万行测试。 - Jeff Moden
邻接对或自我加入CTE表达式解决了我的问题,我必须得到行业和实践代码列表。谢谢保罗! - Vishnoo Rath


答案:


本章介绍了设计和查询层次结构的三种方法:Adjacency Pairs,Materialized Path和HierarchyID。这是针对同一问题的三种解决方案,所以是的,比较这三种方法是完全合理的。事实是物化路径是最快的,但是邻接对可以解决更多类型的层次问题。 HierarchyID笨拙,难以查询,并且,如果您遵循MSFT的建议,它只存储相对位置,而不是密钥,因此它不太健壮。


16
2018-04-24 00:33



嘿......我曾经认为关于HierarchyID数据类型及其方法。使用它一天后,我没有发现你所说的任何笨拙,难以查询的内容。如果与Adjacency列表保持在同一个表中,我发现它非常强大,而不是大多数人声称的性能负担。我猜我将不得不深入研究“SQL server 2008 Bible”并看看它是什么。我还在HierarchyID和嵌套集之间设置了几百万行测试。 - Jeff Moden
邻接对或自我加入CTE表达式解决了我的问题,我必须得到行业和实践代码列表。谢谢保罗! - Vishnoo Rath


你的意思是物化路径与嵌套集或?物化路径模式可以使用hiearchyid数据类型。比较模式与数据类型的速度没有意义。


0
2018-04-23 18:53



是的,在sql server 2008中,它们比较了物化路径模式和hierarchyid。即使hierarchyid使用物化路径,它也没有充分利用其所有功能。因此,作者将它们并排比较,他说物化路径比层次结构更有效。我不明白这是怎么回事! - Luke101