LLBLGen Pro - Присоединиться к пути предварительной выборки - PullRequest
0 голосов
/ 07 декабря 2018

Я использую LLBLGenPro для своего проекта. Мне интересно, какой будет более эффективный способ для запроса, например, путь соединения или предварительной выборки.

Я заметил, что когда я использую путь предварительной выборки, он фактически запускает отдельныйзапросы к базе данных с масштабируемым набором результатов, где как В случае объединения это обычный запрос объединения с раздутым набором результатов.

У меня возникают проблемы с производительностью в моем приложении. Поэтому мне нужно знать, как лучше всего это сделать

1 Ответ

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

Я бы сказал, что это зависит от соотношения между двумя таблицами.Если его 1-1, то объединение, вероятно, будет более эффективным с точки зрения базы данных (это всего лишь один запрос и никакие строки не дублируются).В противном случае, если у вас есть отношения 1-м или 1-0..1, тогда может быть лучше сделать предварительную выборку.LLBLGen достаточно умен, чтобы сделать это как 2 запроса, используя предложение where in с вложенным выбором или списком значений из родительского запроса в зависимости от количества результатов родительского запроса (по умолчанию переключение на подзапрос равно 50 и можетбыть изменено с помощью DataAccessAdapter.ParameterisedPrefetchPathThreshold).Если у вас проблемы с производительностью, рекомендуется запустить трассировку, взять sql и профилировать его, чтобы проверить планы запросов.

...