2012-02-24 3 views
1

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

私のプロジェクトはSQL Serverを使い始めており、すでにユーザープロファイルによってグループ分けされていましたので、フェデレーションを行うのが最も理にかなっています。私はフェデレーションを作成しました。すべての子テーブルに1つの障害があります。アイデンティティはサポートされていません。私はなぜそれがサポートされていない、私はそれを置き換えるために最善のものであるか分からないものを得る。これは他の誰かが解決しなければならない巨大な問題のようですが、私はそれほど多く見つけることができませんでした。

私はUniqueIdentifierを使うことができますが、それは分割する痛みでもあります。また、フェデレーテッド・テーブルのプライマリ・キーとしてGUIDを使用すると、他にどのようなパフォーマンス上の問題が起きるかについてもあまりよく分かりません。

私はEntity Frameworkでこれを使用していますが、そのフェデレーションをまだフレンドリーにすることはできません。 LINQクエリを作成する前に連合を選択するコードを実行するよりも複雑ではありませんが、取得するとそのブリッジを渡ります。

瞬間のために、私はアイデンティティを生成するには良い解決策が存在しないため、実際にに、私のフェデレーションにアイテムを追加する最善の方法は考えています。

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

答えて

2

、それはほとんど最良の選択データシャーディングです。多くのフェデレーションメンバーでアイデンティティを使用していると仮定すると、プライマリ値の重複が発生します。データをマージしてアーカイブする必要がある場合、これらのレコードをどのように処理しますか。

特に、クラスタ化されたインデックスとして使用する場合、GUIDの挿入時にパフォーマンスが低下すると思われます。しかし、私はこの問題に会ったことはありません。それとも、私たちがこれよりもむしろ多くのチューニングの場があると言います。

0

私はEFの質問に話すことができません。しかし、あなたのキータイプとしてUniqueidentifierを使用するという考えにはコメントできません。これは、私の考えでは、最良の選択です。 UniqueIdentifierは実際に分割するのが非常に簡単です...人々はUniqueIdentifierが何であるかを忘れることは難しいと考えている理由です。私たちがよく知っているGUIDは、128ビット整数のHex表現です。つまり、標準のInteger演算を使用することができ、実際には知っているInt(オートナンバー)と同じように扱いやすくなります。

特に、SQL Azureの連合(Windows Azure Storageについて)ではなく、シャンド用のGUIDタイプを使用しているこのブログ記事では、知っておく必要があるすべてを提供します。 SQL Azureの連盟を使用しているとき、私はGUIDを使用してい

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