Сбой SSIS после нескольких записей - PullRequest
0 голосов
/ 29 марта 2012

У меня есть пакет служб SSIS, который предполагает создание цикла из 100 000 записей и для каждой записи сохраняет данные в несколько таблиц. Работает нормально, пока не достигнет где-то около 3000 записей, тогда визуальная студия вылетает. На данный момент devenv.exe использовал около 500 МБ, и только 3000 строк были обработаны. Я уверен, что проблема не в конкретной записи, потому что это всегда происходит на разных 3K записей. У меня есть хороший компьютер с 2 ГБ оперативной памяти. Я использую SSIS 2008.

Есть идеи, в чем может быть проблема?

Спасибо.

1 Ответ

0 голосов
/ 07 августа 2012

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

Пример, приведенный здесь: http://www.mssqltips.com/sqlservertip/1867/sql-server-integration-services-ssis-performance-best-practices/

Рекомендация № 7 - DefaultBufferMaxSize и DefaultBufferMaxRows

Как я уже говорил в "Best Practices # 6", дерево выполнения создает буферы для хранения входящих строк и выполнения преобразований. Так сколько буферов это создает? Сколько строк вписывается в один буфер? Как это влияет на производительность?

Количество созданных буферов зависит от того, сколько строк помещается в буфер и сколько строк помещается в буфер в зависимости от нескольких других факторы. Первое соображение - это предполагаемый размер строки, который сумма максимальных размеров всех столбцов из входящих записей. Второе соображение - это свойство DefaultBufferMaxSize задачи потока данных. Это свойство определяет максимум по умолчанию размер буфера. По умолчанию установлено значение 10 МБ , а его верхнее и нижнее значения границы ограничены двумя внутренними свойствами SSIS, которые MaxBufferSize (100 МБ) и MinBufferSize (64 КБ) . Это значит размер размера буфера может составлять до 64 КБ и до 100 МБ. Третий коэффициент равен DefaultBufferMaxRows, который снова является свойством потока данных задача, которая определяет количество строк по умолчанию в буфере. это значение по умолчанию: 10000 .

Хотя SSIS хорошо настраивает эти свойства по порядку создать оптимальное количество буферов, если размер превышает Затем DefaultBufferMaxSize уменьшает количество строк в буфере. За лучшую производительность буфера вы можете сделать две вещи. Сначала вы можете удалить нежелательные столбцы из источника и установить тип данных в каждом столбце соответственно, особенно если ваш источник - плоский файл. Это будет позволяет разместить как можно больше строк в буфере. Во-вторых, если в вашей системе достаточно памяти, вы можете настроить эти свойства имеют небольшое количество больших буферов, которые могут улучшить производительность. Осторожно, если вы измените значения этих свойства до точки, в которой спулинг страницы (см. Best Practices # 8) начинается, это отрицательно влияет на производительность. Поэтому, прежде чем установить значение для этих свойств, сначала тщательно протестировать в вашей среде и установите значения соответствующим образом.

Вы можете включить ведение журнала события BufferSizeTuning, чтобы узнать, сколько строк в буфере, и вы можете отслеживать "Буферы буферизованы" счетчик производительности, чтобы увидеть, начал ли SSIS буферизацию страниц. я расскажу больше о регистрации событий и счетчиках производительности в моем следующем Советы этой серии.

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