Entity Framework влияет на производительность при работе с базами данных следующим образом:
- Создание представлений. 2 Прежде чем платформа Entity Framework сможет выполнять запросы или сохранять изменения в источнике данных, ей необходимо создать набор локальных представлений запросов. 2 В связи с высокими затратами на создание этих представлений их можно создать заранее и добавить в проект во время разработки. 2
- Подготовка запроса. 2 Включает затраты на создание команды запроса, создание дерева команд на базе метаданных модели и сопоставления, а также определение вида возвращаемых данных. 2 Как команды запросов Entity SQL, так и запросы LINQ кэшируются, поэтому при последующем выполнении один и тот же запрос занимает меньше времени. 2
- Отслеживание изменений. 34 После того как произошла материализация объектов, Entity Framework по умолчанию регистрирует эти объекты во внутренней системе отслеживания изменений. 3 На поддержание системы отслеживания изменений и информации, которая в ней хранится, также тратятся ресурсы. 3
Для повышения производительности при использовании Entity Framework рекомендуется:
- Предварительно создавать представления. 2 С помощью программы EdmGen.exe можно заранее создавать представления в виде файлов с кодом Visual Basic или C#, которые будут добавляться в проект во время проектирования. 2
- Использовать кэширование. 15 Кэш объектов помогает повысить общую скорость реагирования Entity Framework. 1 Кэширование плана запроса позволяет повторно использовать сгенерированную команду сохранения при выполнении запроса более одного раза. 5