1

これが重複している場合は、事前にお詫び申し上げます。何を検索すればよいか正確にはわかりません。

最近、チャネル9で、SQLAzureのデータベースフェデレーションに関するこの気の利いたビデオを視聴しました。最初は、ID列がSQL Azureフェデレーションでサポートされていないことに驚きましたが、それは理にかなっています。2つ(またはそれ以上)のデータベースに分割されたテーブルがあり、それらのID増分値を共有する方法がない場合、2つ(またはそれ以上)のエンティティが同じ主キーを共有することになります。

ビデオでは、この問題に対処する方法について軽く触れ、整数ベースのID列の代わりにPKにGuidのようなものを使用することに言及しました。少なくともMSSQLはデフォルトでPKにクラスター化インデックスを作成することを知っています。また、Guid(またはuniqueidentifier)タイプにクラスター化インデックスを作成するのは良くありません。私は決してリレーショナルの専門家ではありませんが、PKベースのルックアップの整数ベースのタイプと比較すると、Guidのパフォーマンスが低下するとも思います。

それで、これは私に不思議に思いました、水平連合データベースの整数ベースのPKパターンはどのように見えるでしょうか?古い学校のEJBを作成し、主キーの整数を生成する必要があったとき、rdbmsID/自動インクリメント機能を置き換えるために別のシーケンスルックアップテーブルが必要でした。当時、EJBの他の多くのものがあったので、これは苦痛だったことを思い出します。

水平方向に連合されたデータベーステーブルで主キーを割り当てるために一般的に受け入れられているパターンは何ですか?現在の知識を考えると、パフォーマンスの低下のためにGuidから離れ、開発コストと複雑さの追加(主に開発コスト)のためにシーケンシャルルックアップインデックスから離れます。私は何に傾くべきですか?

4

1 に答える 1

1

アプリの性質によっては、このようなものが役立つ場合があります

http://blog.tatham.oddie.com.au/2011/07/14/released-snowmaker-a-unique-id-generator-for-azure-or-any-other-cloud-hosting-environment/

于 2012-07-05T05:16:56.717 に答える