Dapper Query vs QueryMultiple performance - PullRequest
       9

Dapper Query vs QueryMultiple performance

0 голосов
/ 07 февраля 2019

В настоящее время я запрашиваю 8 раз, используя Query<> (8 раз, потому что мне нужно преобразовать некоторые столбцы в JSON, а иногда и отдельно), чтобы сгенерировать один полный требуемый набор результатов.Однако мне было интересно, можно ли повысить производительность с помощью QueryMultiple.У меня есть гипотеза, что QueryMultiple может запрашивать все эти таблицы одновременно, поэтому мне не нужно ждать завершения каждого отдельного запроса.

У меня есть еще один вариант.Это использование *Async версий методов.

Однако я не могу реализовать QueryMutiple без значительного изменения кода.Должен ли я использовать QueryMutiple или *Async версии обычных методов?Каков компромисс между двумя альтернативами, и какой я должен использовать?

1 Ответ

0 голосов
/ 07 февраля 2019

QueryMultiple будет выполнять все запросы в одном пакете, в результате чего к базе данных будет выполнено только одно обратное путешествие, а выполнение восьми отдельных запросов с помощью Query<> также приведет к восьми циклам.

Если вы выполните все своипоследовательно (без использования методов Async) вы тратите много времени, потому что база данных будет простаивать между возвратом результатов запроса и получением следующего запроса вашим приложением.Использование Async может повысить производительность, поскольку ваше приложение может отправить другой запрос в базу данных во время выполнения предыдущего.Использование Async все равно приведет к восьми циклам и пакетам с одним запросом, а это означает, что использование QueryMultiple дает (теоретически) наилучшую производительность в конце.

...