У меня есть большое задание для вставки, скажем 300000 вложений.LINQ Insertonsubmit очень медленный по сравнению с устаревшим заявлением SQL Insert
Если я делаю это унаследованным способом, я просто пишу строку SQL с блоками из 100 операторов Insert и выполняю executeCommand против БД (каждые 100 записей).
Это составляет около 100 вставок за 3 секунды или около того.
Теперь, конечно, есть проблемы с одинарными кавычками и CrLf в пределах вставленных значений. Поэтому вместо того, чтобы писать код, чтобы удвоить одинарные кавычки и т. Д., Поскольку я ленив, у меня есть переход с Linq InsertOnSubmit и один контекст. SublitChanges 100 строк.
И это займет примерно 20 раз больше, чем унаследованный путь !!!
Почему?
Вы используете SQL-трассировку для сравнения двух методов? Мне было бы любопытно увидеть что-то из реальных вставок. – schellack
Linq-to-SQL не ** разработан и предназначен для массовых операций - используйте «классический» прямой способ SQL (например, «SqlBulkCopy» и т. Д.) Для этих ситуаций –