EF 6, холодный старт
От: Vladek Россия Github
Дата: 16.12.16 10:58
Оценка:
Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?
ef ef6
Re: EF 6, холодный старт
От: _Raz_  
Дата: 16.12.16 11:21
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?


см. Database.SetInitializer(...) и context.Database.Initialize(...)
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: EF 6, холодный старт
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 16.12.16 11:28
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?


Кроме миграций и прочего, пару секунд может занимать коннект к базе (а в следующие разы он будет браться из пула)
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re[2]: EF 6, холодный старт
От: Vladek Россия Github
Дата: 16.12.16 12:45
Оценка:
Здравствуйте, Sshur, Вы писали:

S>Кроме миграций и прочего, пару секунд может занимать коннект к базе (а в следующие разы он будет браться из пула)


Коннект — мой случай. Как сразу запихнуть коннект в пул?
Re[3]: EF 6, холодный старт
От: Arsen.Shnurkov  
Дата: 16.12.16 12:49
Оценка: +1
V> Как сразу запихнуть коннект в пул?

законнекться заранее. Например версию базы считай и сравни с требуемой для работы
Re: EF 6, холодный старт
От: dmitry_npi Россия  
Дата: 16.12.16 14:53
Оценка:
Здравствуйте,

А вот в первых версиях EF, которые Database First, была возможность генерировать некие вьюхи, которые иначе генерировались в рантайме.
Как с этим теперь?
Атмосферная музыка — www.aventuel.net
Re[4]: EF 6, холодный старт
От: Vladek Россия Github
Дата: 16.12.16 17:07
Оценка:
Здравствуйте, Arsen.Shnurkov, Вы писали:

V>> Как сразу запихнуть коннект в пул?


AS>законнекться заранее. Например версию базы считай и сравни с требуемой для работы


Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?
Re[5]: EF 6, холодный старт
От: Doc Россия http://andrey.moveax.ru
Дата: 17.12.16 08:37
Оценка: +1
Здравствуйте, Vladek, Вы писали:

AS>>законнекться заранее. Например версию базы считай и сравни с требуемой для работы

V>Что за версия?

Да любое значение из БД подойдет. Просто чтобы не загружать и приложение и саму БД запрос должен быть максимально простым и возвращать минимум данных.
Re[5]: EF 6, холодный старт
От: Shmj Ниоткуда  
Дата: 18.12.16 01:49
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?


Но происходит проверка не изменилась ли схема, если это указано.
Re[5]: EF 6, холодный старт
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 18.12.16 15:03
Оценка: +1
Здравствуйте, Vladek, Вы писали:


V>Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?


Если включены автоматические миграции — они будут проверять схему при каждом подключении
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
Re: EF 6, холодный старт
От: α Российская Империя  
Дата: 24.12.16 22:49
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?


У меня есть база данных и я к ней сгенерировал контекст CodeFirst. Всего каких-то пару сотен классов. Инициализировалась 4-5 минут.
Оптимизировал модель неделю всякими ухищрениями с Fluent Api и кэшированием модели (EF Power Tools etc). Больше ничего оптимизировать не удалось. Сократил до 30 секунд и на этом все. Выкинул эту срань на помойку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.