【问题标题】:If querying an internal SQL server from an external Web server, is it more efficient to use a Web service?如果从外部 Web 服务器查询内部 SQL 服务器,使用 Web 服务是否更有效?
【发布时间】: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


【解决方案1】:

我也不会想到使用 Web 服务会是一个非常快速的解决方案。我看到使用 Web 服务的主要好处是您不必将 SQL 服务器直接暴露给外部网络。这可能会使 Web 服务选项更加安全。

我认为您需要问自己几个问题,例如:

  1. 数据访问速度真的是一个问题吗?
  2. 数据检索操作中最慢的部分是 SQL Server 和 Web 服务器之间的数据传输,还是实际上是 SQL 查询或 Web 服务器对结果的处理是最慢的步骤?

【讨论】:

  • 很好的答案,以及我的想法,但我不确定在这种情况下这是我问题的答案(可能需要一些扩展)。回答您的问题; 1 - 是的,这很重要,2 - 基于实际的 DBA 审查查询、数据传输。
  • 我会接受这个作为答案。我仍然不确定它是否足以回答我的问题,但是......它符合我的想法。
猜你喜欢
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
相关资源
最近更新 更多