如果我使用其他东西,对webservice的调用很慢?

时间:2009-11-02 22:45:33

标签: database web-services performance

目前我们启动并运行了一个Web服务,它处理我们对数据库的所有C.R.U.D调用,以及用户和数据库之间的几乎所有交互。

(从检查数据库开始,查看最终用户应用程序的特定版本是否有更新,检查凭据,检查/读取各种其他应用程序设置等等)

几乎我们桌面应用程序所做的一切(使用WPF .net framework 3.5编写的c#)都会调用Web服务。问题是在较慢的机器上这需要太长时间。一些用户必须等待最多3分钟让应用程序冷启动(这可能部分是因为.net框架缓慢加载时间......但Web服务调用没有任何帮助)。

我想因为我们的应用程序或多或少是数据库(SQL SERVER 2005)的花哨前端,我们是否应该使用其他东西与Web服务进行通信?那里还有什么?我选择了网络服务,因为这是我唯一知道该怎么做的事情。 (除了直接连接到数据库)其他类似的应用程序使用什么?

谢谢

3 个答案:

答案 0 :(得分:1)

正如@Chris Marisic所提到的,第一个确保问题出现在网络中的个人资料。假设它是,你可以尝试一些事情(我不知道WPF所以你必须看看它们如何与框架一起工作)。

  1. 批次类似的项目。 例如,不是一次从表(或等效的)加载1行,而是加载几行。
  2. 可以异步进行Web调用。 如果您必须向Web服务发送大量独立调用,请异步发送它们,以便一次通过网络发送多个请求。
  3. 缓存值。如果您不小心,这会增加很多复杂性(取决于您关注缓存是否是最新的)。监听服务器进行更改(或者让服务器推送更改的能力)的能力使这个更容易处理。
  4. 我在一个不同的框架上遇到了类似的问题,我只用#1获得了相当多的加速。

答案 1 :(得分:0)

个人档案个人资料。不要做出假设。

答案 2 :(得分:0)

“网络服务”是指“SOAP服务”吗?分析将告诉您SOAP是否正在为您购买东西。

延迟和(n + 1)查询可能会杀死你。它应该很容易衡量。