TSQL多重连接与ASP.NET Core的多个请求?

时间:2019-06-16 06:40:01

标签: c# .net sql-server tsql asp.net-core

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 只要您在SQL中应用适当的过滤条件 查询,您将仅从数据库中获取所需的数据 进入您的应用程序层。相反,如果您赚4 单独选择,您可能最终不得不带来比 最终需要什么。
  2. 通过odbc / jdbc连接对数据库引擎的1个调用与4个单独的调用。
  3. 如果您已正确索引基础表以覆盖 查询,关系引擎是在其中执行联接的最佳位置 为此目的而设计的结构化数据。 根据数据类型和基础结构,SQL Server将 提出访问数据,加入数据的最佳方法 执行索引合并联接,嵌套循环联接或哈希联接 在查询的不同点的不同数据集之间,相应地为这些活动分配适当的RAM VS 试图设计和编码基础SQL Server搜索和排序 算法和存储决策全部由您自己在应用程序中完成,以对这4个单独选择的提取结果执行相同的任务。