连接到 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。你那里什么时间?如果它很慢,请优化。如果速度很快,则向下移动堆栈,直到找到速度较慢的部分并解决该问题。
我使用 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。你那里什么时间?如果它很慢,请优化。如果速度很快,则向下移动堆栈,直到找到速度较慢的部分并解决该问题。