問題タブ [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 - SQLServerHierarchyIDの深さ優先パフォーマンスに関する質問
約50,000行を含むテーブル(dbo。[Message])にhierarchyIDを実装しようとしています(将来大幅に増加します)。ただし、約25件の結果を取得するには30〜40秒かかります。
ルートノードは一意性を提供するためのフィラーであるため、後続のすべての行はそのダミー行の子になります。
テーブルを深さ優先でトラバースできるようにする必要があり、hierarchyID列(dbo。[Message] .MessageID)をクラスタリングの主キーにし、計算されたsmallint(dbo。[Message] .Hierarchy)を追加しました。ノードのレベル。
使用法:.NetアプリケーションはhierarchyID値を介してデータベースに渡され、そのノードのすべての(存在する場合)子と親(フィラーであるため、ルートを除く)を取得できるようにしたいと考えています。
私が使用しているクエリの簡略化されたバージョン:
私の理解では、インデックスはヒントなしで自動的に検出されるはずです。
フォーラムの検索から、幅優先のインデックスを扱うときにインデックスヒントを利用している人々を見てきましたが、深さ優先の状況ではこのアプリケーションを観察していません。それは私のシナリオに関連するアプローチでしょうか?
私は過去数日間、この問題の解決策を見つけようとしていましたが、役に立ちませんでした。助けていただければ幸いです。これが私の最初の投稿であるため、これが「noobish」の質問と見なされる場合は事前に謝罪します。MSのドキュメントを読み、数え切れないほどのフォーラムを検索しましたが、特定の問題。
sql-server-2008 - SQL 2008 HierarchyID - X の子孫を下に選択
データ型 HIERARCHYID の列を持つテーブルをクエリして、従業員の X レベル下にある子孫のリストを取得するにはどうすればよいですか?
現在の構造は次のとおりです。
sql-server - HierarchyID が不足することを心配する必要がありますか?
他の 2 つの間で新しい HierarchyID を要求すると、結果が徐々に長くなります。たとえば、2/5.6 と 2/5.7 の間には、2/5.6.1 と他の 4 つのコンポーネント パスしかありません。HierarchyID データ型は 800 バイトに制限されているため、これを永遠に繰り返すことはできません。繰り返しになりますが、整数型も制限されていますが、実際には問題ありません。高さが無制限に大きくならないように、テーブルを定期的に最適化する必要がありますか?
sql-server - SQL Server 2008のhierarchyidを使用して、ノードのすべての祖先を取得するにはどうすればよいですか?
タイプが列のテーブルがあるhierarchyid
場合、特定のノードの祖先であるすべての行を返すクエリをどのように記述しますか?
IsDescendantOf()
子を取得するのに最適な関数がありますが、祖先を返すための対応する関数IsAncestorOf()
はありません(関数がないことはGetAncestors()
かなり見落としのようです)。
model-view-controller - MVC のドロップダウンでの注文
MVC のビューのドロップダウンに問題があります。ドロップダウンのオプション要素はテーブルから取得され、hierarchyId 列で並べ替える必要があります。正しい順序のビューを作成しましたが、ビューからエンティティを作成してドロップダウンに使用すると、順序が無視されます。
hierarchyId データ型が L2S と EF でサポートされていないことがわかったので、それが問題になる可能性がありますが、ビューを作成し、ビューで順序付けを使用してドロップダウンを正しく入力できる必要がありますか?
前もって感謝します、Steffen Jorgensen、デンマーク
nhibernate - NHibernate での SQL 2008 HierarchyID のサポート
さまざまな NHibernate リストを検索しましたが、決定的な答えは見つかりませんでした。SQL2008の方言は HierarchyID データ型をサポートしていないようです - 新しい日付と時刻の型のみ。
誰かが良い実装または効果的な回避策を持っていますか? 私の新しいアプリで HierarchyID を活用したいと思っています。この興味深い強力なデータ型のサポートは、MS 独自のツールではまったく不足しているため、NHibernate がサポートしていないことにショックを受けていません。
まだ掘り下げていないアプローチがいくつかあります。 何が機能するか、よりパフォーマンスが高いかなどについて、誰かが経験を持っているかどうか疑問に思っています。
完全な開示: 私は Castle ActiveRecord を使用していますが、これは NHibernate の問題のようです。
c# - C# で文字列を hierarchyid に変換する
c#.net で文字列を hierarchyid に変換できるようにする必要があります - ストアド プロシージャを使用できません。
パス (文字列) を渡すと、パスが / ではなく「/」のように格納されるため、クエリは失敗します。
別のタイプに変換できますか?
-- BitKFu
を追加しました。これは、生成される sql クエリです。
次のエラーが表示されます: ex = {"Incorrect syntax near '/'."}
-- ck
これは私が期待しているものです
-- ポール・ルアン
私はすでにこのページを見ましたが、何かを見落としていない限り、本当に役に立ちませんでしたか?
ありがとう
クレア
sql-server - SQL Server で「Hierarchyid」を更新する
SQL Server のテーブルの 1 つで Hierarchyid データ型を使用しました。
今、行の 1 つの父を変更したいのですが、それを変更すると、そのすべての子孫 HierarchyId はそれに応じて変更する必要があります。
それを行う機能はありますか、それともすべて自分で変更する必要があります。それを行う必要がある場合、最善の方法は何ですか?
前もって感謝します
sql-server - オブジェクトに重複キーを挿入できません (GetReparentedValue / hierarchyid)
Web で見つけた例を使用して、GetReparentedValue を使用して子を再親化する関数を作成しました。
ただし、コードを実行すると、次のエラーが表示されます: オブジェクトに重複キーを挿入できません。
理由はわかりました (私は子供を再親化しようとしており、新しい親には既に子供がいるため、新しい親構造内の子の MAX パス (hierarchyid) を知る必要がありますが、実際にどのようになっているのかわかりません)それをするつもりです。
パス 0x58
古いパス 0x
新しいパス 0x68
子を追加するときにこれを行う必要があるため、これを上記のクエリのどこかに追加する必要があると思いましたが、どこにあるのかわかりませんpath + ".GetDescendant(" + lastChildPath + ", NULL)
データベース テーブル
誰にも何か提案はありますか?
助けてくれてありがとう:-)
クレア
sql - 階層問題
hierarchyid 列を持つテーブルがあります。それは次のようなものです:
次のような NAMES を見たい:
これどうやってするの?