5

サンプル コード -> "ElasticScaleStarterKit" をダウンロードしました (Visual Studio -> ファイル -> 新規 -> プロジェクト -> オンライン -> Elastic DB Tools for Azure SQL - Getting Started)。

次のように定義されたスキーマ:

schemaInfo.Add(new ReferenceTableInfo("Regions"));
schemaInfo.Add(new ReferenceTableInfo("Products"));
schemaInfo.Add(new ShardedTableInfo("Customers", "CustomerId"));
schemaInfo.Add(new ShardedTableInfo("Orders", "CustomerId"));

ReferenceTableInfo と ShardedTableInfo の違いは何ですか?

単純な違いは、すべてのデータベース (ステータス テーブルなど) に当てはまる「ドライ」情報と、特定の顧客の個人情報との違いであることを理解しています。

しかし、すべてのテーブルを参照に設定するとどうなるでしょうか?? この種の設定の欠点は次のとおりです。

schemaInfo.Add(new ReferenceTableInfo("Regions"));
schemaInfo.Add(new ReferenceTableInfo("Products"));
schemaInfo.Add(new ReferenceTableInfo("Customers"));
schemaInfo.Add(new ReferenceTableInfo("Orders"));

助けを願っています:)

ありがとう!

4

1 に答える 1

3

参照テーブルは、データがレプリケートされるテーブルです。つまり、参照テーブルに 5 行ある場合、それらの 5 行は参照テーブルのすべてのインスタンスに存在します。

ただし、シャード テーブルは、データが分割されているテーブルです。たとえば、シャード テーブルに 5 行のデータがある場合、2 つが 1 つのシャード (またはデータベース) に存在し、3 つが別のシャードに存在します。したがって、2 つのデータベースが同じ行セットを持つことはありません。

この情報は分割/マージ ツールでも使用されます。レプリケートされたテーブルの場合、すべての行がソースからターゲットにコピーされ、シャード テーブルの場合は行がソースからターゲットに移動されます。

お役に立てれば!

于 2015-12-09T16:53:31.707 に答える