1

初めての Azure アプリケーションの作業を開始しましたが、多くのことを学んでいます。私が最近発見した機能の 1 つは、SQL Azure のフェデレーションでした。これは、本質的に SQL Azure シャーディングの実装であるため、水平方向にスケーリングできます。

私のプロジェクトは SQL Server の使用を開始し、すでに大部分がユーザー プロファイルによってグループ化されていたので、フェデレーションするのが最も理にかなっていると判断しました。すべての子テーブルを含むフェデレーションを作成しましたが、問題が 1 つあります。ID はサポートされていません。サポートされていない理由がわかりました。よくわからないのは、何に置き換えるのが最善かということです。これは、他の誰かが解決したに違いない大きな問題のように思えますが、あまり見つけることができませんでした。

UniqueIdentifier を使用することもできますが、分割するのが面倒になる可能性があることを読みました。また、連合テーブルの主キーとして GUID を使用すると、他にどのようなパフォーマンスの問題が発生する可能性があるかについてもよくわかりません。

私はこれを Entity Framework で使用していますが、そのフェデレーションを使いやすくするまでには至っていません。私が知る限り、LINQ クエリを作成する前にコードを実行してフェデレーションを選択するよりもそれほど複雑ではありませんが、到達したらその橋を渡ります。

今のところ、 ID を生成するための適切な解決策がないため、実際にフェデレーションにアイテムを追加する最善の方法がわかりません。

アドバイスをいただければ幸いです。

4

2 に答える 2

0

だから私はEFの質問と話すことができません。ただし、キーの種類として Uniqueidentifier を使用するというアイデアについてはコメントできません。私の考えでは、これが最良の選択です。UniqueIdentifier は実際には非常に簡単に分割できます...人々が難しいと考える理由は、UniqueIdentifier が何であるかを忘れているからです。私たちがよく知っている GUID は、128 ビット整数の 16 進数表現です。これは、標準の Integer 演算を使用できることを意味し、実際には、おなじみの Int (自動番号) と同じくらい簡単に操作できます。

特に SQL Azure フェデレーションに関するものではありませんが (Windows Azure ストレージに関するものです)、シャーディングに GUID タイプを使用することに関する私のこのブログ投稿は、知っておく必要があるすべてを提供するはずです。

http://www.syringe.net.nz/CommentView,guid,cebe3e19-85e6-4d5b-bc24-afb6f66aaeb1.aspx

于 2012-02-24T22:13:55.157 に答える