所以,我知道打开与服务器的连接是一项耗时的操作,您希望尽可能地限制它。我很好奇服务器上实际的 sql 查询有多苛刻?
因此,您有一个包含 100 个员工 ID 的列表,并且您想要获取他们的姓名。你有两个选择。
- 拉下整个员工名单(我们假设这个名单不超过 1k)并将它们与结果进行比较
- 提取给定 id 的每个名称,从而产生 100 个单独的 sql 查询。
选项 2 比选项 1 差吗?
另外,我知道这可能取决于。如果表的总大小为数百万,那么显然选项 2 适用于少量数据。
所以,我知道打开与服务器的连接是一项耗时的操作,您希望尽可能地限制它。我很好奇服务器上实际的 sql 查询有多苛刻?
因此,您有一个包含 100 个员工 ID 的列表,并且您想要获取他们的姓名。你有两个选择。
选项 2 比选项 1 差吗?
另外,我知道这可能取决于。如果表的总大小为数百万,那么显然选项 2 适用于少量数据。
这有点主观,并且有很多未定义的变量。哪个数据库服务器?哪个版本?什么硬件?一个或多个表是如何存储在磁盘上的?还有什么在访问服务器?表是如何索引的?....我可以继续下去。
如果您正在尝试做出架构决策,我认为您需要先定义功能需求才能获得体面的答案。
对于 10 行:单个查询。
对于大数据:存储过程、表值参数 (ID)、作为结果的行集。
如果连接量非常高,就会出现性能问题。最好让连接打开低。
有关连接池的更多信息,请点击此处