.net: Создание / хранение большого количества данных параллельно с SQL-сервером - PullRequest
0 голосов
/ 24 августа 2011

Я собираюсь создать / сохранить загрузки записей (30 000) в таблицы базы данных в каждом пакете. Если я использую программу распараллеливания для сокращения времени процесса, как я могу справиться со следующими проблемами?

  • Таблицы БД будут заблокированы, так что производительность на самом деле не будет такой, как ожидалось
  • Есть ли образец, на который я могу взять ссылку?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Во-первых, большинство специалистов по базам данных не считают 30К записей большим набором данных - вы уверены, что вам нужно беспокоиться о производительности?

В зависимости от целого ряда факторов, серверы баз данных действительно хорошо справляютсямножественные процессы, вставляющие / обновляющие данные в одну и ту же таблицу - это своего рода основное назначение в жизни.Я предполагаю, что вы имеете в виду продукт сервера БД, такой как MS SQL Server, Oracle или MySQL.

Предложение Саймона Мурье о BulkCopy, вероятно, является самым быстрым способом объединения большого набора данных в таблицу.

Если вам нужно запустить параллельную обработку, ключом является управление транзакциями - если каждый поток запускает транзакцию и не фиксирует ее в течение длительного времени, вы можете столкнуться с проблемами блокировки.Ознакомьтесь с реализацией вашей базы данных и постарайтесь проводить краткосрочные транзакции.

0 голосов
/ 24 августа 2011

Вы уверены, что вам нужна параллельная обработка?30000 не может быть таким большим.Я предлагаю вам сначала взглянуть на класс SqlBulkCopy .Вот ссылка, объясняющая, как ее использовать: Использование SqlBulkCopy для выполнения эффективных массовых операций SQL

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