問題タブ [hierarchyid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server:大きなテーブルのhierarchyIDフィールドを埋める方法は?
100 000 000 行の大きなテーブルがあります。1 つのルートを持つツリーが含まれています。2 つのフィールドとして実装されたツリー:
このツリーに関する追加データはありません。
テーブルに新しい列を追加したい
階層ID
階層値を入力します。
スクリプトを作成しましたが、15 時間以内に機能します。大丈夫ではありません。3 時間以内に実行する必要があります。どうやってするの?サンクス。
sql-server-2008 - hierarchyid を使用して葉ノードを見つける
都市/地域/国/大陸をマッピングするために hierarchyid 列を使用する Locations テーブルがあります。テーブルは次のようになります。
イベントを場所にマップする 2 つ目のテーブルがあります。このテーブルは階層を平坦化し、レベルごとに 1 つのレコードを持ちます (この方法で継承しました)。したがって、イベントがロサンゼルスで行われる場合、このテーブルにはイベントの 4 つのレコード (ロサンゼルス、カリフォルニア、米国、北米) があります。同じイベントを複数の場所で開催することもできます。
リーフ ノードとして識別した @EventLocations からレコードを選択するクエリを作成しようとしています。これらは、@Locations 階層に関連する子孫を持たないイベントごとのレコードです。したがって、場所が @EventLocations の「葉」である可能性がありますが、@Locations に子孫があります。以下のクエリを試してみましたが、@Locations テーブルのリーフであるレコードのみが抽出されます。
sql - hierarchyid は、リーフ ノードが頻繁に挿入される大きなツリーに適していますか?
ツリーをモデル化するデータベースがあります。このデータは、かなり巨大になる可能性があります。つまり、数百万行になる可能性があります。(主キーは実際にはbigintであるため、数十億行をサポートしたい可能性があると思いますが、これはおそらく実現しないでしょう)。
1 つのノードは非常に大量の直接の子を持つことができ、階層の上位にあるほど可能性が高くなります。リーフの実際の最大深度、つまりルートに到達するためにトラバースする必要があるノードの数に指定された制限はありませんが、実際には、これは通常、せいぜい数百を超えることはありません。普通なら20以下でしょう。
このテーブルへの挿入は非常に頻繁に行われるため、高性能である必要があります。挿入される挿入ノードは常にリーフ ノードであり、常に最後の兄弟の後にあります。ノードが移動されることはありません。削除は常にサブツリー全体として行われます。サブツリーの検索は、このテーブルに対して行われるもう 1 つの操作です。同じパフォーマンス要件はありませんが、もちろん、できるだけ高速にしたいと考えています。
現在、これは親/子モデルでモデル化されており、挿入には効率的ですが、サブツリーの検索には非常に時間がかかります。テーブルが大きくなると、これは非常に遅くなり、サブツリーの検索に数分かかる場合があります。
そこで、これをおそらく SQL Server で新しい hierarchyid 型を使用するように変換することを考えていました。しかし、これが適切かどうかを判断するのに苦労しています。私にはわかりませんが、このシナリオで実行する操作には、このようなツリーが適しています。(ここで間違っている場合は修正してください)。
ただし、hierarchyid の最大サイズは 892 バイトであるとも述べています。ただし、これが実際に何を意味するのかについての情報は見つかりません。hierarchyid はどのようにエンコードされますか? ヒエラルキー ID が不足するのはいつですか?
sql - MS SQL Server での hierarchyid 値の効率的な管理
SQL Server 2008 以降の hierarchyid データ型では、/1/1/8/ [ /1/1/8/x/ ] の次の子の発行を x が1 に最も近い非負の整数は?
簡単な解決策は、割り当てられた子の最大値を見つけて兄弟を右に移動することのようですが、値を再利用することは決してないため、最終的にはこれを使い果たしてしまうようです (実際にはそうでなくても)。私の理解では、ネガと非全体はより多くのスペースを消費します。
例:/1/1/8/これらの子を持つ親がいる場合 (子の順序は問題ではなく、値の再割り当ては問題ありません):
次の子には持たせたくない/1/1/8/2/?
hierarchyid - hierarchyid '/1/1/' を持つノードに hierarchyid '/1/1/x' を持つ子ノードがあることを確認するにはどうすればよいですか?
hierarchyid '/1/1/' を持つノードが、hierarchyid '/1/1/X' を持つ子ノードを持っている (または持っていない) ことを確認するのを手伝ってくれませんか?
sql-server - 2 つの親を持つ SQL Server 2012 HierarchyId?
階層を使用する作業システムがあります。サンプルは以下です。ここで、子供に 2 つの親を持たせる必要があります。私の例では、'tomato' (id=4) を果物と野菜の両方にする必要があります。
新しい PK を使用してテーブルを再構築し、トマト行を複製して、nの行 ID を持ち、「トマト識別子」を保持し、各行に独自の親を含めることができます....しかし、指定する別の方法はありますかテーブル全体を再構築せずに複数の親?
ありがとう。
c# - EntityFramework.HierarchyId の問題
EntityFramework.HierarchyIdNuget パッケージを使用してHierarchyIdEF 6 内のデータ型のサポートを追加しようとしています。問題は、パッケージを追加してプロジェクトをビルドしようとするたびに、次のエラーが発生することです。
エラー 3 タイプ 'System.Data.Entity.DbContext' は、参照されていないアセンブリで定義されています。アセンブリ 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' への参照を追加する必要があります。
パッケージを削除して EF 6.1 を再インストールすると、問題はなくなりました。
これは、Web.config ファイルにあるものです。
バージョンをエラーの内容に変更しても、問題は解決しません。
mysql - MySQL: SQL Server の HierarchyId データ型の代替ソリューション
SQL Server 2008現在のアプリケーションはサーバーで構築されており、データベースの部門階層にデータ型を使用JAVAしていました。HibernateHierarchyId
HierarchyId データ型を処理する SQL クエリを作成しました。n-Levelまた、部門ツリー構造も持っています。
ここで、ビジネス要件に従って、データベース サーバーを からSQL Server 2008に変更したいと考えています。MySQL
HierarchyId実現可能性を確認した後、データ型を除いて、アプリケーション全体を MySQL データベース サーバーに移行するという解決策を思い付きました。
HierarchyIdしたがって、私の主な課題は、コーディングの変更を最小限に抑えてデータ型の代替ソリューションを見つけることです。
データベースに部門階層を実装する最良の方法は何ですか?
ありがとう...
parsing - hierarchyID GetAncestor を ID として
問題: 階層 ID から親 ID を推定する必要があります。
例: 私の columnID は 8 で、現在の hierarchyID は /1/2/4/8です。を呼び出すと columnName.GetAncestor(1)、 が返されます/1/2/4/。必要なのは の ID です4。
どうすればいいですか?それとも、hierarchyIDs は結合することのみを意図していますか?
SqlHierarchyID.Parse()を調べていますが、使い方がわかりません。