首页 > 解决方案 > TSQL 多个连接与来自 ASP.NET Core 的多个请求?

问题描述

我正在创建一个使用 Dapper 连接到数据库的 ASP.NET Core 应用程序。在我的一个商务课程中,我必须从 4 个表中获取一些相当大的数据集。有什么更好的解决方案?

  1. 使用 4 个内部连接创建选择。

  2. 创建没有内部连接的基本选择,然后在 C# 中 foreach 该集合并调用另一个选择以从下一个表等中获取数据。

它基本上是在对数据库的一个请求之间进行选择,它将选择大量数据或对数据库的多个请求以获取多个较小的数据部分。

标签: c#.netsql-servertsqlasp.net-core

解决方案


以下是我认为 Join 应该更好地工作的几个原因:

  1. 只要您在 SQL 查询中应用适当的过滤条件,您就只会将所需的数据从数据库中提取到应用程序层中。与此相反,如果您进行 4 次单独的选择,您最终可能不得不带来比最终需要的更多的数据。
  2. 通过您的 odbc/jdbc 连接调用 1 次数据库引擎与 4 次单独调用。
  3. 如果您已正确索引基础表以覆盖查询,则关系引擎是在结构化数据之间执行连接的最佳位置,因为它们是为此目的而设计的。根据数据的类型和底层结构,SQL Server 会想出访问数据的最佳方式,无论是在不同数据点的不同点执行索引合并连接,还是嵌套循环连接或哈希连接,都可以连接数据。查询,为这些活动分配适当RAM .

推荐阅读