Я получил большое преобразование - 299Gb изображений JPEG, уже находящихся в базе данных, в эквиваленты эскизов для целей отчетности и пропускной способности.SQL Server и обновление (или вставка) параллелизма
Я написал потокобезопасную функцию SQLCLR, чтобы сделать бизнес повторной выборки изображений, прекрасной работы.
Проблема заключается в том, что когда я выполняю ее в операторе UPDATE
(из поля PhotoData в поле ThumbData), это выполняется линейно, чтобы предотвратить условия гонки, используя только один процессор для повторной выборки изображений.
Итак, как бы я мог наилучшим образом использовать 12 ядер и установку phat raid для этой машины базы данных? Следует ли использовать подзапрос в предложении FROM
инструкции обновления? Это все, что требуется для обеспечения параллелизма в этой операции?
В любом случае операция разбивается на партии, около 4000 изображений на каждую партию (в оконном запросе около 391 тыс. Изображений), эта машина имеет много ресурсов для записи.
Какая версия и выпуск SQL Server? –
2008 Enterprise 64bit - в настоящее время привязан ко всем логическим процессорам, но, с любопытством, Max Degree of Parallelism в настоящее время установлен на ноль (все доступные процессоры). Вопрос, вероятно, должен быть, как написать параллельный запрос ... думаю, я нашел ответ на http://sqlserverpedia.com/wiki/Parallel_Query_Processing#Insert.2C_Update.2C_Delete_Operations – Rabid