1

我有一个使用 WPF 用 C# 编写的客户端/服务器应用程序。服务器上的数据库变得非常大,应用程序必须加载大部分数据(让我们不要争论它的那部分......只要相信我并接受它的本质)。我可以根据需要根据需要提取数据,但是由于不断地与远程数据库来回查询,这会产生性能问题。

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

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

谢谢

4

3 回答 3

0

查看 SQL 精简版

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 回答
0

你能不能不考虑一下这个问题,而不是把额外的问题推给你的客户,只是想在你的数据库前面放一个薄层?

如果您要使用基于 NoSQL 的薄层(最受欢迎的是 MongoDB 或 CouchDB),您可以将对象缓存在其中,以便从数据库中移除负载并将其推送到缓存中,然后您还可以获得扩展缓存的能力如果您愿意,可以水平跨过其他框。

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

于 2012-09-14T15:33:17.827 回答