2015-12-07 2 views
0

У меня есть запрос данных 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 
+0

Если ваше приложение mvc, зачем вам загружать изображение? Если вам нужно отобразить его, загрузите его в другое действие, где запрашивается изображение. Идея состоит в том, чтобы не загружать байты, если они вам не нужны. –

+0

Вы можете сохранить изображения не в базе данных и просто сохранить путь heh. –

+0

Я не уверен, если вы считаете, что это большое изменение дизайна, но один из вариантов - сохранить изображение на файловом сервере и сохранить местоположение файла в вашем db. –

ответ

0

Спасибо всем за ваши ответы. Ответ был их комбинацией.

Я удалил изображение из базы данных и сохранил его в хранилище Azure Blob с помощью userId в качестве ключа.

Теперь я смог удалить его из моих запросов sql, которые не ускорили их.

спасибо.