Ms sql коннектор

Добрый день.

Проводили нагрузочное тестирование SuiteCRM (30-700 пользователей) на связке:
-APP
OS Debian 9
Web Apache 2.4
PHP 7.1

-BD MS sql server

По итогам анализа результатов нагрузочного тестирования выявили одну проблему – описание проблемы ниже.

Выявленная проблема:

При переходе на список клиентов ФЛ получаем долгий отклик (1-15 секунд) от SuiteCRM на ~ 70 пользователях, при 160 и более пользователях (от 20 секунд до 5 минут) что средство генерации нагрузки воспринимает как обрыв сессии.
Выяснили причину данной проблемы, это запросы вида:

SELECT TOP (21) *
FROM
(
SELECT <набор полей>
, ROW_NUMBER() OVER (ORDER BY <условие сортировки>) AS row_number
FROM contacts
where contacts.deleted=0
) AS a
WHERE row_number > 0

Далее выяснили, что данный запрос генерируется автоматически – точнее Suite CRM хочет выполнить запрос «SELECT <набор полей> FROM contacts where contacts.deleted=0 ORDER BY <условие сортировки>» для отображение первой «странице» списка клиентов, для этого вызывает процедуру из пакета для работы с MS SQL server limitQuery. В limitQuery передает запрос, количество записей на странице (21) и начальную строку на страницу 0. Внутри процедуры limitQuery текст запроса меняется:
• к запросу добавляется функция получения номера строки
• внутри сервера БД происходит выполнение запроса выделенного курсивом
• Сервер внутри себя делает выборку всех строк возвращаемых запросом (в нашем случае всех записей о клиентах, которых сейчас более 2 млн)
• Внешний запрос из всех записей выбирает записи с номером строки более начального (в нашем случае 0)
Проблема также заключается в том, что функция limitQuery используется для получения данных по всем спискам в системе – это все списки (включая результаты поисков), все субпанели и все списка в дашлетах на стартовой странице. Соответственно, при росте количества записей в каком либо модуле, гарантированно будет проблема с открытием его списка.

Есть ли кто-то на форуме, кто сталкивался с подобными трудностями и/или знает как это можно обойти?

Не в качестве ответа, но в качестве совета: продублируйте вопрос на гитхабе.