小巧玲珑的查询VS QueryMultiple性能

问题描述 投票:2回答:1

我目前使用的查询8 Query<>次(8次,因为我有一些列转换成JSON,有时分开)来生成所需的一个完整的结果集。不过,我想知道是否有可能通过使用QueryMultiple来提高性能。我有一个假设,即QueryMultiple可以查询在同一时间所有这些表,所以我不必等待每一个查询来完成。

我有另外一个选择。它是用*Async的方法版本。

但是,我不能没有显著改变代码实现QueryMutiple。我应该使用QueryMutiple或正规方法*Async版本?什么是两个选择哪一个我应该使用之间的权衡?

c# dapper
1个回答
3
投票

QueryMultiple将在一个批次导致只有一个往返到数据库中,同时执行八个单独的查询与Query<>也将导致在八个往返执行所有查询。

如果你执行所有的查询顺序(不使用Async方法),你浪费了很多时间,因为该数据库将返回的查询结果,并通过您的应用程序接收下一个查询之间的空闲。使用Async可以提高性能,因为在执行前一个应用程序可以发送另一个查询数据库。使用Async仍然会导致八个考察和批次,单一的查询,虽然,这意味着使用QueryMultiple收益率(理论上)在最后的最佳性能。

© www.soinside.com 2019 - 2024. All rights reserved.