2012-09-24 21 views
7

私は階層型データを持っています。最も一般的なクエリは、 "ノードの親ブランチを取得する"と "ノードのサブツリーを取得する"です。更新と挿入が頻繁に発生する可能性は低いです。私はネストされたセットとhierarchyidの間で選択しています。私が考えている限り、ネストされたセットの検索はインデックス付きの列でかなり速くなるはずですが、私はhierarchyidの内部実装については何の手がかりも持っていません。可能な限り最高のパフォーマンスを達成するために私は何を使用すべきですか?SQL Serverネストセット対階層型パフォーマンス

+2

テスト、テスト、テスト? (あなたはClosureのような他のモデルもテストすることができます) –

+0

すべてのモデルの実装とテストにはかなりの時間がかかりますので、私は尋ねています。私が気づいていない可能性のある隠された欠点はもちろんです。 – Vasaka

+0

あなたはDBA.SEへの移行のためにあなたの質問にフラグを立てることをお勧めします。私はHierarchyIDの内部については全く知らないし、他の多くはそうではないと思います。 –

答えて

3

異なるプロジェクトでHierarchyIDテーブルと自己参照テーブルを使用していたので、HierarchyIdはクエリの容易性の面で優位を占めています。
HierarchyIDの組み込みクエリメソッドを使用して簡単に参照できるようにするには、Querying a Hierarchical Table Using Hierarchy Methodsを参照してください。