【发布时间】:2011-01-19 20:12:19
【问题描述】:
在我们的环境中,我们将面向外部的 Web 服务器置于异地(同一城市)。然后在内部我们有我们的 SQL 服务器,它是从上述 Web 服务器调用的。 (我们确实有一个异地 SQL 服务器,但现在使用的越来越少了。)
我听说 SQL 调用(我们使用的是 Microsoft SQL Server)具有(相当浪费的)网络开销,但在 this question 之外,我在网上找不到太多相关信息。
鉴于上述情况,我们有:
- 非现场(外部)Web 服务器查询现场(内部)SQL 服务器
- 场外和场内设施之间的 3-5+ MB 连接
- 根据需要在 Web 服务器上设置不同级别的缓存
继续进行 SQL 调用是否有意义,或者在现场(内部)Web 服务器上创建 Web 服务,然后由这些非现场服务器调用是否更有效?
我们将 100% 迁移到 ASP.NET,因此我们可能会为服务使用 WCF,因为这是我们用于第三方的,但我认为无论使用哪种语言,性能差异都是相同的.
谢谢!
编辑 1:试图澄清:我询问的是跨网络连接的 SQL 调用效率,而不是使用 Web 服务。我知道添加进行 SQL 调用的 Web 服务会增加复杂性,但是如果 Web 服务返回的内容比 SQL 返回的内容更有效(对于相同的数据集)......例如,发送 XML 和JSON。
对我来说,从编程的角度来看,SQL 调用似乎会更有效率。我可以直接查询特定情况下我想要/需要的数据,而不是为每个情况创建一个服务方法,或者拥有一个返回比我需要的更多信息的方法,因此它可以用于多种情况。
如果“使用Web服务通过网络返回数据比直接调用SQL更高效”只是营销,没有实际影响,那就这样吧。
查看 Microsoft 提供的内容,建议/指南似乎是“仅在与第三方通信或您正在编程的东西不允许 SQL 访问时才使用 Web 服务”。
【问题讨论】:
-
这又被提起了,根据所说的,我认为似乎是真的;没有清楚地理解 Web 服务实际上是在调用 SQL。
标签: sql web-services