11

我正在閱讀SQL Server 2008聖經,它表示物化路徑模式顯着快於hierarchyid。這是真的嗎?我怎樣才能讓hierarchyid具有相同或更好的性能。物化路徑模式VS Hierarchyid

回答

16

本章解釋了設計和查詢層次結構的三種方法:鄰接對,物化路徑和層次ID。對於同樣的問題,這是三種解決方案,所以是的,比較這三種方法是非常有意義的。事實是,物化路徑是最快的,但鄰接對可以解決更多類型的層次結構問題。 HierarchyID笨拙,難以查詢,而且,如果遵循MSFT的建議,它只會存儲相對位置,而不是密鑰,所以它的穩健性較差。

+6

嘿......我曾經認爲關於HierarchyID數據類型及其方法。在使用它一整天之後,我沒有發現你說的關於它笨拙,難以查詢的內容。如果與鄰接列表保持在同一張表中,我發現它非常強大,並且不是大多數人聲稱的性能負擔。猜猜我必須深入研究「SQL Server 2008 Bible」並瞭解具體情況。我還在HierarchyID和Nested Sets之間設置了幾百萬行測試。 – 2011-10-04 02:33:14

+0

鄰接對或自我加入CTE表達式解決了我的問題,我必須獲取行業和實踐代碼列表。謝謝保羅! – 2013-03-25 11:17:55

0

你的意思是物化路徑與嵌套集還是?物化路徑模式可以使用hiearchyid數據類型。比較模式的速度與數據類型的速度沒有任何意義。

+2

是的,在sql server 2008聖經 - 他們比較物化路徑模式和hierarchyid。即使hierarchyid使用物化路徑,它也不會充分利用其所有功能。因此作者將它們並排比較,他說物化路徑比層次結構更高效。我不明白這是怎麼回事! – Luke101 2010-04-23 22:50:29