0

テーブルにorCustId型の主キー ( ) があるとします。が奇数か偶数かに応じて、このテーブルを連合テーブルに分割したいと考えています。すなわちintlongintOrderId

Federated 'primary key' =(Fed_key, CustId)ここOrderIdで、タイプはintor longintandですFed_key= 0CustId==even の1場合、CustId==odd の場合。

例えば:

CustId = 1234 => Federated 'primary key' = (0,1234) 

CustId = 6789 => Federated 'primary key' = (1,6789)

これにより、基本的に 2 つのフェデレーション メンバー (別名パーティション) が得られます。後で、追加のパーティションのために Fed_key を (1,3,5)、(2,4,6)、および (7,8,9,0) にグループ化することがあります。5 つ以上のパーティションが必要になるとは考えていません。

質問: 上記のロジックを Azure SQL に表現​​するにはどうすればよいですか? フェデレーションの作成中またはフェデレーション テーブルの作成中に行う必要があると思います。

4

2 に答える 2

0

まず、非シャード主キーの INT/LONGINT ID から GUID/uniqueidentifiers に移行しました。GUID はアプリケーション層で作成されます。アプリケーション層自体の中で、GUID の最後のニブルを選び、partitionId を決定します。

現在、これPartitionId, CustIdはフェデレーション全体の主キーであり、アプリケーションはトランザクション中にこれをデータベース層に提示します。これは動作することがテストされています。

于 2013-03-16T06:26:06.087 に答える
0

ドキュメントから(リンク):

フェデレーション列は、永続化または非永続化の計算列にすることはできません。

さらに、顧客が複数の注文を持っていると仮定すると、すべての注文を取得するために x 数のフェデレーション メンバーを照会したいですか?

于 2013-03-16T06:16:50.073 に答える