これが重複している場合は、事前にお詫び申し上げます。何を検索すればよいか正確にはわかりません。
最近、チャネル9で、SQLAzureのデータベースフェデレーションに関するこの気の利いたビデオを視聴しました。最初は、ID列がSQL Azureフェデレーションでサポートされていないことに驚きましたが、それは理にかなっています。2つ(またはそれ以上)のデータベースに分割されたテーブルがあり、それらのID増分値を共有する方法がない場合、2つ(またはそれ以上)のエンティティが同じ主キーを共有することになります。
ビデオでは、この問題に対処する方法について軽く触れ、整数ベースのID列の代わりにPKにGuidのようなものを使用することに言及しました。少なくともMSSQLはデフォルトでPKにクラスター化インデックスを作成することを知っています。また、Guid(またはuniqueidentifier)タイプにクラスター化インデックスを作成するのは良くありません。私は決してリレーショナルの専門家ではありませんが、PKベースのルックアップの整数ベースのタイプと比較すると、Guidのパフォーマンスが低下するとも思います。
それで、これは私に不思議に思いました、水平連合データベースの整数ベースのPKパターンはどのように見えるでしょうか?古い学校のEJBを作成し、主キーの整数を生成する必要があったとき、rdbmsID/自動インクリメント機能を置き換えるために別のシーケンスルックアップテーブルが必要でした。当時、EJBの他の多くのものがあったので、これは苦痛だったことを思い出します。
水平方向に連合されたデータベーステーブルで主キーを割り当てるために一般的に受け入れられているパターンは何ですか?現在の知識を考えると、パフォーマンスの低下のためにGuidから離れ、開発コストと複雑さの追加(主に開発コスト)のためにシーケンシャルルックアップインデックスから離れます。私は何に傾くべきですか?