5

データをプルできるようになりましたが、大規模なデータ セットのクエリを最適化するためのより良い方法があるかどうか疑問に思っています。

http://sqlfiddle.com/#!4/0ef0c/5

したがって、基本的には、特定の組織 ID をクエリに提供し、その親、子、兄弟、および叔母と叔父を再帰的にプルできるようにしたいと考えています。次に、その組織階層に関連付けられているアクティビティをプルします。

Org1 は最上位の組織ですが、null の親を持つ場合と持たない場合があります。

基本的に、子と親をプルするために上下のクエリを実行していましたが、別のクエリを追加することによってのみ兄弟を取得できるようです。最終的に友人の助けを借りて別のクエリにたどり着きましたが、大規模なデータ セット (4 ~ 5k のアクティビティ) が非常に少ないです。

どんな洞察も大歓迎です。

4

2 に答える 2

0

あなたの組織の場合。構造が厳密に階層化されている場合は、次のアプローチを使用できます: http://www.ibase.ru/devinfo/DBMSTrees/sqltrees.html

欠点は、組織構造が更新されるたびにインデックスを更新する必要があることです。ただし、組織構造は通常、変更されるよりもはるかに頻繁に読み取られます。したがって、私見はこれでうまくいくはずです。

于 2013-02-15T14:03:01.237 に答える