Большие наборы данных .net и SQL-сервер? - PullRequest
1 голос
/ 20 июля 2010

У меня есть проект, в котором мне нужно собрать много записей и изменить их в соответствии с некоторыми критериями.

По сути, у нас есть система, где пользователи могут загружать документы. Эти документы помечаются в базе данных по причинам проверки от других пользователей. Мы проверяем файлы на основе определенных критериев, а затем помечаем их как действительные. Таким образом, у нас есть 2 столбца isValid и проверены.

Я не могу зависеть от базы данных для проверки файлов, поэтому у меня есть приложение, которое выполняет некоторые действия для их проверки Потенциально для проверки могут быть сотни тысяч файлов. Каков наилучший подход для приложения для итерации базы данных? Одна мысль, которая у меня была, - написать SP, чтобы получить количество записей TOP X, для которых флаг проверки не имеет значения true. Затем выполните другой запрос, чтобы увидеть, остались ли еще записи. Если это так, снова запустите тот же SP, извлеките записи и обработайте их. Я не уверен, как приложение будет обрабатывать такое количество записей.

Ответы [ 3 ]

2 голосов
/ 21 июля 2010

Ваш подход довольно хороший. Я использовал аналогичный подход, например, для массовых рассылок (читай топ 1000, делай, пока у тебя не кончатся записи). Хорошо, что вам никогда не нужно загружать больше, чем X записей, что делает ваши циклы красивыми быстро.

Если это не сработает, вы можете добавить компонент Service Broker и добавить QUEUE, где вы добавляете команды проверки, которые прослушивает процесс. Этот более поздний подход позволяет вам легко иметь несколько читателей, которые выполняют проверку. Это имеет смысл, однако, если проверка является узким местом (потому что это занимает время - вы никогда не говорите, что проверка действительно делает).

1 голос
/ 21 июля 2010

Вы пытались использовать столбцы FILESTREAM в SQL Server?Если нет, то здесь - краткое описание.

По сути, таким образом ваши документы могли бы физически храниться в файловой системе, но при этом SQL Server по-прежнему считался неотъемлемой частью вашей БД - это означает, что вам не придется обновлять записи с большими столбцами BLOB иили вы сможете использовать прямые вызовы файловой системы для управления самими документами.

Просто мысль.

0 голосов
/ 20 июля 2010

Я бы начал с просмотра BulkRead и BulkWrite в отношении БД. У меня лично не было причин использовать их, но я верю, что они будут достаточно близки к тому, что вам нужно: очень быстрый способ извлечения данных из БД, а затем очень быстрый способ записи в БД а также.

...