У меня есть запрос данных Entity Framework в приложении MVC. Одним из выбранных полей является байт [], который содержит изображение. Когда у меня есть это поле в запросе, скорость запроса очень медленная, около 30 секунд, без поля занимает около 2 секунд. Я знаю, что это будет связано с загрузкой данных в память. Мне было интересно, есть ли у кого-нибудь идеи относительно того, как ускорить этот запрос без каких-либо крупных изменений дизайна. Я что-то пропустил?Производительность byte [] в запросе Entity Framework
Вот запрос ...
var tiles = (from t in context.Tiles
join o in tileIds on t.TileId equals o
join u in context.aspnet_Users on t.UserId equals u.UserId
join c in context.Checkins on t.UserId equals c.UserId
where t.AdminDeactivated == false
select new TileLite()
{
Title = t.Title,
Quote1 = t.Quote1,
TileId = t.TileId,
LikeCount = t.LikeCount,
SafeUserName = u.SafeUserName,
UserId = u.UserId,
ClientUpdateTime = t.ClientUpdateTime,
URLUserName = u.URLUserName,
CheckinTime = c.CheckinTime,
Latitude = c.Latitude,
Longitude = c.Longitude,
ProfilePhoto = u.Photo,
TileImage = t.BgImage
});
поле, что вызывает проблемы является ...
TileImage = t.BgImage
Если ваше приложение mvc, зачем вам загружать изображение? Если вам нужно отобразить его, загрузите его в другое действие, где запрашивается изображение. Идея состоит в том, чтобы не загружать байты, если они вам не нужны. –
Вы можете сохранить изображения не в базе данных и просто сохранить путь heh. –
Я не уверен, если вы считаете, что это большое изменение дизайна, но один из вариантов - сохранить изображение на файловом сервере и сохранить местоположение файла в вашем db. –