1

WPFを使用してC#で記述されたクライアント/サーバーアプリケーションがあります。サーバー上のデータベースは非常に大きくなり、アプリケーションはそのデータの多くをロードする必要があります(その部分については議論しないでください...それを信頼して、それが何であるかを理解してください)。代わりに、必要に応じてオンデマンドでデータをプルすることもできますが、リモートデータベースとの絶え間ないクエリにより、パフォーマンスの問題が発生します。

ただし、アプリケーションの起動時に、必要なデータをクライアントにプルダウンして、ローカルで実行されているデータベースに保存できれば、すばらしいと思います。次に、アプリケーションは、リモートサーバーデータベースではなく、ローカルデータベースにクエリを実行します。このように、アプリケーションはメモリフットプリントを低く抑えますが、ローカルであるため、データにすばやくアクセスできます。

この方法でSQLServerExpressまたはLocalDBを使用することは可能ですか?つまり、クライアントマシンで実行させ、アプリケーションの起動時にサーバーデータベースと同期しますか?もしそうなら、これはそれらの推奨または非推奨の使用ですか?

ありがとう

4

3 に答える 3

0

これを逆に考えて、クライアントに追加の懸念を押し付けるのではなく、データベースの前に薄いレイヤーを配置することを考えてみませんか?

シンNoSQLベースのレイヤー(MongoDBまたはCouchDBが最も一般的)を使用する場合は、その中にオブジェクトをキャッシュするだけで、データベースから負荷を取り除き、キャッシュにプッシュすることができます。これにより、キャッシュをスケーリングすることもできます。必要に応じて、他のボックスを横切って水平に配置します。

これは質問の「ローカルDBの使用」の部分に反することは知っていますが、クライアントに触れることなく問題を解決できるという事実を無視したくありませんでした(接続文字列を少し変更しても、モデルはそのままになります)同じ)。

于 2012-09-14T15:33:17.827 に答える
0

SQL Lite を確認する

SQL ライト

SQL LITE の機能

于 2012-09-14T14:10:43.653 に答える
0

まだお持ちでない場合は、MS Sync Framework をご覧ください: http://msdn.microsoft.com/en-us/sync/bb736753.aspx 学習曲線は急ですが、このような種類のシナリオ向けに設計されています。

アプリは、起動時または必要に応じて、新しい/更新されたデータをローカル データベースにプルできます。これは、パフォーマンスやネットワーク接続が不安定な場合に役立ちます。

于 2012-09-14T14:14:02.387 に答える