【发布时间】:2011-07-08 09:06:03
【问题描述】:
我们为客户提供关键应用程序。它是一个 clickonce winforms 应用程序,它使用多个与 Oracle 数据库通信的 WCF 服务。 该服务由 Oracle 应用服务器托管,前面有两个 Web 缓存服务器以实现负载平衡。数据库位于另一台单独的机器上。
问题是,应用程序现在的性能很差,我们需要加快速度。我们尝试了许多技术:在分析解释计划时通过添加索引来优化查询、减少来自客户端的服务调用以及分析客户端应用程序的缺陷。
但我真的很想在数据库或 WCF 上设置两个缓存层。数据很关键,并且经常更改,因此有必要在所有请求中获取最新数据。 因此,当数据库中的数据发生变化时,缓存应该立即过期。查询很复杂,最多包含两个 14-15 连接...
如何正确执行此操作以及我应该使用哪些工具/框架?我听说过 memcached.. 这个好用吗?
【问题讨论】:
-
您是否对应用程序进行了概要分析以找出时间花费在哪里?将复杂性投入到解决方案中,直到您知道最大的收益在哪里可能会适得其反
-
我有,从数据库中检索数据可能是最大的问题
-
是否所有数据访问都通过您的服务,或者数据库中的数据是否可以带外更改?
-
一切都通过这个网络服务
标签: winforms wcf oracle caching memcached