c# - TSQL 多个连接与来自 ASP.NET Core 的多个请求?
问题描述
我正在创建一个使用 Dapper 连接到数据库的 ASP.NET Core 应用程序。在我的一个商务课程中,我必须从 4 个表中获取一些相当大的数据集。有什么更好的解决方案?
使用 4 个内部连接创建选择。
创建没有内部连接的基本选择,然后在 C# 中 foreach 该集合并调用另一个选择以从下一个表等中获取数据。
它基本上是在对数据库的一个请求之间进行选择,它将选择大量数据或对数据库的多个请求以获取多个较小的数据部分。
解决方案
以下是我认为 Join 应该更好地工作的几个原因:
- 只要您在 SQL 查询中应用适当的过滤条件,您就只会将所需的数据从数据库中提取到应用程序层中。与此相反,如果您进行 4 次单独的选择,您最终可能不得不带来比最终需要的更多的数据。
- 通过您的 odbc/jdbc 连接调用 1 次数据库引擎与 4 次单独调用。
- 如果您已正确索引基础表以覆盖查询,则关系引擎是在结构化数据之间执行连接的最佳位置,因为它们是为此目的而设计的。根据数据的类型和底层结构,SQL Server 会想出访问数据的最佳方式,无论是在不同数据点的不同点执行索引合并连接,还是嵌套循环连接或哈希连接,都可以连接数据。查询,为这些活动分配适当的RAM .
推荐阅读
- python - 从python中的txt读取原始音频文件
- java - 我的应用程序在片段内的列表视图中崩溃 onitemclick
- inno-setup - 准备安装向导页面看起来是空的
- visual-c++ - 未能手动创建可用的单文件程序集
- bash - 合并到单个文件 Bash 脚本时,将每个文件的文件名添加为分隔行
- angular - 角度列表 HttpClient
- spring-cloud - 在 Spring Sleuth 中使用现有值设置 traceId
- python - 如何将元组作为关键字参数传递 (kwarg)
- javascript - android webview 不支持异步 js 功能
- python - 基于类的上下文管理器与基于生成器的上下文管理器