【问题标题】:ASP .NET system design advice. [closed]ASP .NET 系统设计建议。 [关闭]
【发布时间】:2023-08-03 02:36:02
【问题描述】:

我正在开发一个系统(.NET 网站),该系统使用类库来操作位于 MS SQL 服务器上的数据。最近,我一直想知道放弃这些类并使用 WCF 进行数据操作。这样我就可以使用 Android、Java 等中的服务...

嗯,有些类会返回大量数据,比如 125x10000 的数据表……我担心 WCF 无法处理……或者系统性能会受到太大影响。

你们怎么看? WCF 是否可以用于在多用户系统上检索/更新大量数据? 如果没有,还有哪些其他选择?

【问题讨论】:

  • 这可能太多了。您是否总是需要完整的数据转储?你能在服务器上做更多的查询工作并返回更小的数据集吗?您可以(至少)对结果进行分页,以便它们以几百/千为一组吗?
  • 是的。需要整个数据转储...是的,可以进行分页...但还是太多了,对吧?
  • 您可以向 WFC 添加方法以减少日期转储吗?比如:getItemByID(int id); getItemByName(字符串名称); getItemLike(字符串名称)
  • 你们会如何设计,使用什么样的技术来构建一个经常用于检索/更新大量数据的多用户系统?
  • 每个应用程序不能直接访问 SQL 数据库获取完整数据转储是否有令人信服的理由?

标签: c# asp.net .net wcf service


【解决方案1】:

也许我误解了您想要实现的目标,但听起来您的建议是将数据库负载转移到应用程序端 - 将整个数据表拉到应用程序以运行您的可能数据库操作。这就是 SQL 服务器的设计目的。

这样做,您将所有负载都放在应用程序服务器上,并且未充分利用所关注的数据库区域。编写一些代码来处理锁定,然后让数据库完成它的工作。你最终会编写更多的过程,但这是正常的,从长远来看会更好,因为你可以在后端编辑它们而无需重新编译应用程序代码。 IMO 在存储过程中执行所有数据库操作,并通过 WCF 返回较小的结果集。

我的意思是……你真的打算通过 WCF 服务将这么多信息传输到手机上吗?!

【讨论】:

  • 哈哈,如果公司想让我使用那个应用程序,他们最好为真正的无限数据计划付费......:D