Ваша проблема не имеет ничего общего с ASP.NET или микросервисной архитектурой ...
Если у вас есть 28 000 записей в таблице базы данных и вы запрашиваете все записи по HTTP, это будет медленно.
Одной из причин быстрого запроса localhost является то, что все 28 000 записей отправляются localhost, а не «по проводам», как в случае с производством. В производстве все 28 000 записей должны путешествовать через Интернет. Другая причина, по которой запрос может быть быстрым localhost, заключается в том, что в вашей базе данных также работает localhost, поэтому опять же данные не должны перемещаться «по проводам». В производственной среде, даже если база данных является внутренней, данные могут все еще иметь некоторое расстояние для перемещения от базы данных к API, также «по проводам», и этого не происходит, если в вашей базе данных также работает localhost.
Решение состоит в том, чтобы реализовать пейджинг в вашем API и на внешнем интерфейсе:
Вы упомянули требование: «но бизнес-предпочтение состоит в том, чтобы иметь все и позволить внешней таблице сортировать и фильтровать ее».
Сортировка и фильтрация также выполняются в сочетании с подкачкой:
Возможно, вы сначала этого не поняли, но это одна из самых распространенных проблем с веб-приложениями, и она всегда решается с помощью медлительной загрузки веб-страниц и веб-элементов управления с подкачкой или вертикальной прокруткой. Загрузка всех данных, чтобы интерфейс мог выполнять разбиение по страницам, сортировку и фильтрацию, является неправильным способом решения проблемы.