В настоящее время у нас есть сложный бизнес-объект, которому требуется около 30 объединений в нашей базе данных sql для извлечения одного элемента. (и это наш основной вариант использования). База данных составляет около 2 ГБ на сервере sql. Мы используем структуру сущностей для извлечения данных, и для извлечения одного элемента требуется около 3,5 секунд. Мы заметили, что использование подзапроса в параллельном вызове более эффективно, чем использование соединений, когда в другой таблице много строк. (так что у нас есть что-то вроде 10 подзапросов). Мы не используем хранимую процедуру, потому что хотели бы сохранить уровень доступа к данным в «простом С#».
Цель состоит в том, чтобы получить элемент менее чем за 1 секунду без слишком большого изменения среды. Мы рассматриваем решения без sql (RavenDB, Cassandra, Redis с «клиентом документов») и новую функцию «база данных в памяти» сервера sql.
Что вы порекомендуете ? Как вы думаете, достаточно ли одного вызова хранимой процедуры с EF?
РЕДАКТИРОВАТЬ 1: у нас есть индексы для всех столбцов, где мы делаем соединения