Несколько соединений TSQL против нескольких запросов от ASP.NET Core? - PullRequest
0 голосов
/ 16 июня 2019

Я создаю приложение ASP.NET Core, используя Dapper для подключения к базе данных.В одном из моих бизнес-классов я должен получить довольно большой набор данных из 4 таблиц.Какое лучшее решение для этого?

  1. Создание выбора с 4 внутренними объединениями.

  2. Создание базового выбора без внутренних объединений, а затем передать эту коллекцию вC # и вызов другого выбора для получения данных из следующих таблиц и т. Д.

Это в основном выбор между одним запросом к базе данных, который выберет много данных или несколько запросов к базе данных для нескольких меньших частей данных.,

1 Ответ

1 голос
/ 16 июня 2019

Вот несколько причин, по которым я считаю, что Join должен работать лучше:

  1. Пока вы применяете надлежащие условия фильтрации в вашем SQL запрос, вы будете получать только необходимые данные из базы данных в ваш прикладной уровень. Наоборот, если вы сделаете 4 отдельные выборки, вам может потребоваться больше данных, чем что, наконец, потребуется.
  2. 1 вызов к базе данных через ваше соединение odbc / jdbc против 4 отдельных вызовов.
  3. Если вы правильно проиндексировали базовые таблицы для покрытия запрос, реляционный движок является лучшим местом для выполнения объединений среди структурированные данные, как они предназначены для этой цели. Исходя из типа данных и базовой структуры, SQL Server будет придумать лучший способ доступа к данным, присоединиться к данным, будь то выполнить индексированное соединение слиянием, или соединение с вложенным циклом или хеш-соединение среди разных наборов данных в разных точках запроса, выделяя соответствующую оперативную память для этих действий соответственно VS пытаясь разработать и кодировать базовый поиск и сортировку SQL Server алгоритмы и решения по хранению - все в вашем приложении для выполнения одной и той же задачи с извлеченными результатами этих 4 отдельных выборок.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...