Я должен получить n записей из базы данных. Количество этой записи может очень менеджер к менеджеру. Это означает, что у одного менеджера может быть более 100 записей, а у другого - только 50+.
Если все дело в извлечении данных только из одной таблицы, то его очень легко получить.
В моем В случае, если основной проблемой является то, что я получу свой результат после использования стольких объединений , temp таблиц, функций, maths в некоторых столбцах и фильтрах дат с использованием переключателей и многое другое, и да, в каждой таблице более 100 тыс. записей с правильной индексацией.
Я добавил разбиение на страницы на стороне пользовательского интерфейса, чтобы на экране можно было одновременно просматривать только 20 записей. как только я нажал на номер страницы, исходя из этого, я должен сместить записи на следующие 20. Предположим, что я нажал на страницу № 3, тогда из db я должен получить только записи с 41 по 60.
Часть пользовательского интерфейса не имеет большого значения Дело в том, как оптимизировать ваш запрос, чтобы каждый раз получать только 20 записей.
Моя текущая реализация - каждый раз, когда я вызываю одну и ту же процедуру со значением индекса для смещения данных. Это правильный способ запуска одного и того же комплекса со всеми функциями, cte, случаями в фильтрах и внутренними / левыми объединениями снова и снова, чтобы получить только часть данных из набора записей.