使用本地DB优化客户端服务器应用程序?

时间:2012-09-14 14:03:03

标签: c# sql wpf sql-server client-server

我有一个使用WPF用C#编写的客户端/服务器应用程序。服务器上的数据库变得非常庞大,应用程序必须加载它的大部分数据(让我们不要讨论它的一部分......只要相信我就可以了解它的内容)。我可以根据需要随意提取数据,但由于不断使用远程数据库来回查询,这会产生性能问题。

但是,如果在应用程序启动时,我可以将我需要的数据下载到客户端并将其存储在本地运行的数据库中。然后,应用程序查询本地数据库,而不是远程服务器数据库。通过这种方式,应用程序可以保持较低的内存占用率,但仍然可以快速访问数据,因为它是本地的。

是否可以这种方式使用SQL Server Express或LocalDB?即让它们在客户端计算机上运行,​​并在应用程序启动时与服务器数据库同步?如果是这样,这是推荐使用还是不推荐使用它们?

由于

3 个答案:

答案 0 :(得分:0)

查看SQL Lite

SQL LITE

SQL LITE Features

答案 1 :(得分:0)

如果你还没有,请查看MS Sync Framework:http://msdn.microsoft.com/en-us/sync/bb736753.aspx学习曲线陡峭但是它适用于这些场景。

应用程序可以在启动时或在需要时将新的/更新的数据下载到本地数据库。这有助于提高性能或网络连接可能不稳定。

答案 2 :(得分:0)

您是否可以不考虑另一种方式,而不是将其他问题推到客户端,只考虑在数据库前放置一个薄层?

如果您要使用基于NoSQL的精简图层(MongoDB或CouchDB最受欢迎),您可以将对象缓存在那里,以便从数据库中取出负载并将其推送到缓存中,然后您也可以使用如果需要,可以在其他框中水平扩展缓存。

我知道这有点违背了问题的“使用本地数据库”部分,但我不想忽视这样一个事实:你可以在不触及客户端的情况下解决你的问题(可能是一些连接字符串更改,但你的模型会保持不变。