リモート データ アクセスとマージ レプリケーションの比較
SQL Server Compact アプリケーションでリモート データ アクセス (RDA) とレプリケーションのどちらを使用するかは、スマート デバイス アプリケーションの目的、機能、規模、および要件に応じて決まります。各データ接続手段には、さまざまな長所と短所があります。
RDA もレプリケーションもワイヤレス トランスポートに適しています。圧縮は、送信データのサイズを減らすために使用します。暗号化を使用すると、重要なユーザー データを送信中に保護することができます。
機能の比較
機能 | レプリケーション | RDA |
---|---|---|
監視対象データの変更内容の交換 |
サーバーおよびクライアントとの間で変更をレプリケートします。 列レベルの監視 - 変更された列データのみを転送することにより、データの転送量を減らします。 行レベルの監視 - 行全体を転送します。 |
クライアントからサーバーにのみ変更をプッシュします。クライアント データを完全に更新するには、サーバーの変更を受け取る必要があります。 行レベルの監視 - 行全体を転送します。 |
データの反映元テーブルの数 |
複数のテーブル - パブリケーションで定義されたのと同じ数です。 |
RDA メソッドにつき 1 つのテーブルです。 |
反映できるテーブルの種類 |
データ フローを制御するためのさまざまな種類のテーブルです。 パブリケーション (サーバー) でのテーブルの追加または削除は、クライアントのサブスクリプションを再初期化することなく、自動的にレプリケートされます。 |
N/A サーバーでのテーブルの追加または削除は、クライアントに自動的にレプリケートされることはありません。 |
制約とインデックス |
参照整合性制約およびインデックスは、サーバーから自動的にレプリケートされます。 |
参照整合性制約はレプリケートされませんが、インデックスは必要に応じてレプリケートされます。追加のスキーマ定義は、クライアントで定義する必要があります。 |
競合 |
競合には、複数の異なるユーザーが変更したデータ、およびエラーが原因で適用されなかった行が含まれます。 サーバー上での競合を解決および管理します。 組み込みおよびカスタムの競合回避モジュールがサポートされています。 |
競合には、エラーが原因で適用されなかった行だけが含まれます。RDA では、別のユーザーによってデータが変更されたかどうかは検出されません。 競合は管理されませんが、必要に応じて、クライアントのエラー テーブルに表示されます。 競合回避モジュールはありません。 |
スキーマ変更 |
スキーマ変更 (列の追加/削除、制約の追加/削除、または列定義の変更) はレプリケートできます。 |
スキーマ変更は許可されていません。スキーマが変更されると、クライアントは、クライアントのテーブルを削除し、もう一度サーバーからすべてのデータをプルする必要があります。スキーマの変更により、プッシュが失敗する場合があります。 |
ID 列 |
手動および自動の ID 範囲の処理です。BigInt 列および Int 列がサポートされています。 |
手動の ID 範囲の処理です。BigInt 列および Int 列がサポートされています。 |
データ/スキーマ定義 |
パブリケーションが構成され、サブスクリプションの作成時にクライアントで自動的に定義される際にサーバーで行われます。 |
データとスキーマの定義は、データがサーバーからクライアントにプルされる際にクライアントで行われます。 |
ツール (UI) |
サブスクリプションの作成と管理を行う多数のツール、および複数のサブスクリプションの管理、パフォーマンスの監視、時間の同期を行う監視ツールです。 |
サポートされているツールはありません。 |
サーバーへの侵襲性 |
レプリケーションを管理するサーバー データベースにテーブルと列が追加されます。 |
サーバー上のデータベースは変更されません。 |
重要 : |
---|
デザイン上の制限により、リモート データ アクセス (RDA) は今後のリリースでは廃止される予定です。現在 RDA を使用している場合は、「Microsoft Synchronization Services for ADO.NET」への移行を検討してください。新しいアプリケーションで RDA を使用することを予定していた場合は、代わりにマージ レプリケーションまたは Synchronization Services の使用を検討してください。現在、Synchronization Services は、デスクトップとモバイル デバイスの両方で使用できます。 |