Любые ORM, которые обеспечивают достойные методы для высокоскоростных массовых вставок? - PullRequest
2 голосов
/ 28 июня 2011

Существуют ли ORM, которые предоставляют достойные методы для высокоскоростных массовых вставок?

Причина, по которой я спрашиваю, состоит в том, что платформа Entity отлично подходит для извлечения данных, но полностью падает, если вы хотите выполнять вставку быстрее, чем 10 строк в секунду.

Обновление

В настоящее время я вставляю со скоростью 80 000 строк в секунду, используя DataTable и T-SQL, но было бы лучше, если бы я мог использовать ORM по всем направлениям.

Ответы [ 4 ]

2 голосов
/ 02 июня 2016

Blimey, спросили 4 года назад?

Ну ....

Если кто-то все еще ищет ответ здесь, База данных Insight.Database Джона Вагнера (чрезвычайно изящный Micro-ORM)поддерживает SQL BULK INSERT.

Я могу легко написать 200 000 строк в секунду, используя следующий синтаксис -

Database.Connection().BulkCopy("TableName", myListOfItemsToInsert);

Будет ли это работать для вас?

Insight.База данных на GitHub

2 голосов
/ 28 июня 2011

Боюсь, вы найдете ORM плохим выбором для выполнения 80K строк в секунду. Это просто невозможно, если вы не обойдете преобразование Linq в T-SQL и не перейдете непосредственно к базе данных. Но тогда вы побеждаете цель ORM. Даже тогда мне было бы трудно увидеть, как вы достигнете 80K строк в секунду (хотя вы не определили ширину каждой строки).

ORM, такие как EF и Linq to SQL, будут выдавать один оператор вставки за обновление. Это не способствует пропускной способности 80K / sec. IMO, вы должны использовать инструмент массовой вставки, такой как SSIS. Это то, для чего он был разработан.

1 голос
/ 28 июня 2011

Нет, для ORM это не то.Поддержка ORM OLTP , не массовая обработка данных.Используйте правильный инструмент для работы.

(Если вы настаиваете на использовании ORM, посмотрите на установку размера партии для вставок.)

1 голос
/ 28 июня 2011

Можно использовать бэкдор, используя EF, но одним из распространенных аргументов против использования ORM является производительность.

ORM предназначены для улучшения читаемости / кодируемости / и сокращения времени разработки.Если вы заботитесь о производительности, используйте нативный sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...