Много похожих вопросов, но не могу найти ответ, который я хочу. Я пытаюсь импортировать миллионы в режиме онлайн, и каждая строка содержит информацию о нескольких основных объектах EF (основной с 50 полями и 3 связанных объекта с несколькими полями)
У меня есть тонны дубликатов, что означает, что мне нужно всегда проверять, есть ли здесь данные, прежде чем вставлять или получать свойства FK / навигации.
Это довольно медленно. Я обрабатываю около 1000 строк в минуту. Я сделал несколько вещей ниже, но есть ли что-то еще очевидное, что я могу сделать?
db.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
У меня есть словарь кэша. Словарь с небольшой таблицей, в которой перечислены все мои 50 пользователей, чтобы не запрашивать базу данных в каждой строке, чтобы получить свойство навигации пользователя.
Запуск исполняемых файлов за пределами VS незначительно улучшил производительность.