连接到 SQL 服务器数据库哪个更好? ADO.net直接还是WCF?

Which is better to Connect to SQL Server database? ADO.net directly or WCF?

我使用 ADO.net 类 连接到 SQL 服务器数据库。当我连接到基于 WAN 的远程计算机数据库时,它工作起来非常慢。我知道这很正常。我想加快服务器和客户端之间的数据库连接。现在的问题是:如果我在服务器计算机上安装一个服务并通过 WCF 从客户端计算机向它发送数据库请求,比通过 ADO.net 直接连接到服务器更好吗?还有其他方法吗?

在我看来,

  • 更好更安全地使用 WCF 服务。
  • 这是因为每当您使用 ADO.net 时,您都必须在应用程序中存储 ConnectionString,而 WCF 则不需要。
  • 当然 ADO 比 WCF 快,这是因为您连接 WCF,而 WCF 连接 ADO。

这两个概念只是松散相关:

  • WCF 用于进行网络调用。
  • ADO 用于查询数据库。

ADO 是获取数据最快的方法之一。如果你的速度很慢,那就另当别论了。例如,Whosebug 使用 Dapper,就在 ADO 之上进行调用。

需要考虑的事项:

  • 什么是"slow"。对多个连接和数十万行的 2 秒查询还不错。
  • 您的查询优化了吗
  • 您是否仅返回必需的数据
  • 你的数据库优化了吗
  • 您确定是查询吗?数千行在查询中可能需要 65 毫秒,但如果以某些方式完成,则渲染到网格的时间要长得多。

这里有一点需要考虑,含混不清的术语会使情况变得更糟。

首先在 SSMS 中直接获取 ADO 查询和 运行 SQL。你那里什么时间?如果它很慢,请优化。如果速度很快,则向下移动堆栈,直到找到速度较慢的部分并解决该问题。