SQL hierarchyid深度优先与广度优先:使用一个而不是另一个?

时间:2012-09-04 18:39:18

标签: sql-server-2008 tsql hierarchy

我了解Breadth First SearchDepth First Search。我看了this page,而且在SO上,我也发现了this questionthis question

我想知道的是一些实用的场景,我会首先使用深度搜索广度。虽然我提供的第三个问题链接有点类似,但我的问题更适合t-sqlSQL Server 2008/2012表现。

另外,如果我使用其他人可以向我展示一个例子,我可以拥有多少(最坏情况)性能影响?比方说,如果我采用dfs,并且我在第一个节点有50个孩子,而我正在搜索第二个节点,那么dfs将比我想象的慢50倍,因为它会首先必须横向50个孩子,然后它将来到第二个节点。是这样吗?我的意思是,就像这种直接的关系,还是其他表现呢?

最后,再次重复我的问题,虽然它可能(很可能会是)应用程序和需求特定,但我想知道一些实际情况,我将使用一个而不是另一个,以及可能的性能成本选择一个而不是另一个?另外,我维护一个类别目录应该选择什么?说,我正在维护书籍类目录,例如:science => physics => astronomy等等,哪一个最好? dfsbfs

1 个答案:

答案 0 :(得分:0)

你几乎回答了自己的问题。根据数据,使用最有可能首先访问所需节点的搜索方法。