Вызов хранимой процедуры из среды Entity n раз - PullRequest
1 голос
/ 04 марта 2011

У меня есть сохраненный процесс в базе данных, который мне нужно вызывать n раз в Entity Framework.

    public Points GetResults(Share share, DateTime startDate, DateTime endDate)
    {
        using (var ctx = new MyDatabaseEntities())
        {
            int? stockId = GetID(share, endDate);
            var data = ctx.GetData(stockId, 123, startDate, endDate, -23, 14, 3);
            var selectedPoints = data.Where(a => a.Date.HasValue && a.Value.HasValue).ToDictionary(a => a.Date.Value, a => a.Value.Value);
            return new Points(selectedPoints);
        }
    }

Я должен назвать это для n количества акций (500 акций, 500 вызовов).Я считаю, что на данный момент для меня это узкое место в производительности.В хранимом процессе есть много логики, которую я не могу вывести из процесса.У кого-нибудь есть какие-либо советы, чтобы ускорить это?Или я просто ошибся, потому что мне нужно вызывать эту процедуру n раз?

1 Ответ

1 голос
/ 04 марта 2011

Если хранимая процедура принимает только один StockId и вам нужен результат для многих, то у вас нет выбора, кроме как вызвать его 500 раз, это всегда будет медленным.

На самом деле вам нужно взглянуть на изменение SP, я бы посоветовал взглянуть на табличные параметры в зависимости от используемого движка базы данных.

...