【问题标题】:Materialized path pattern VS Hierarchyid物化路径模式 VS Hierarchyid
【发布时间】:2011-02-11 07:43:28
【问题描述】:

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

【问题讨论】:

    标签: sql-server-2008 c#-4.0 hierarchyid materialized-path-pattern


    【解决方案1】:

    您是指物化路径与嵌套集还是?物化路径模式可以采用分层数据类型。比较模式和数据类型的速度是没有意义的。

    【讨论】:

    • 是的,在 sql server 2008 圣经中 - 他们比较物化路径模式和 hierarchyid。即使 hierarchyid 使用物化路径,它也没有充分利用其所有功能。所以作者将它们并排比较,他说物化路径比hierarchyid性能更高。我不明白这是怎么回事!
    【解决方案2】:

    本章解释了设计和查询层次结构的三种方法:Adjacency Pairs、Materialized Path 和 HierarchyID。这是同一问题的三种解决方案,所以是的,比较这三种方法非常有意义。事实上,物化路径是最快的,但邻接对可以解决更多类型的层次结构问题。 HierarchyID 很笨拙,很难查询,而且如果你按照 MSFT 的建议,它只存储相对位置,而不是 key,因此它的健壮性较差。

    【讨论】:

    • 嘿...我曾经认为 HierarchyID 数据类型及其方法。在使用它仅仅一天之后,我没有发现你所说的任何关于它的笨拙,难以查询的任何内容。如果与邻接列表保持在同一个表中,我发现它非常健壮,而不是大多数人声称的性能负担。我想我必须深入研究“SQL server 2008 Bible”,看看发生了什么。我还在 HierarchyID 和嵌套集之间设置了几百万行测试。
    • 使用 CTE 表达式的邻接对或自加入解决了我必须获取行业和实践代码列表的问题。谢谢保罗!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2014-07-06
    • 1970-01-01
    相关资源
    最近更新 更多