Запускать пакеты служб SSIS в отдельных местах памяти или увеличивать размер буфера по умолчанию? - PullRequest
6 голосов
/ 17 марта 2009

У меня есть пакет служб SSIS, дочерний пакет которого не работает. Сообщение об ошибке не очень полезно.

Попытка добавить строку в буфер задач потока данных не удалась с кодом ошибки 0xC0047020

Кажется, проблема в том, что у меня заканчивается виртуальная память для завершения работы.

Я нашел ветку форума, которая может помочь решить проблему. http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/thread/d6d52157-0270-4200-a8c2-585fa9a0eed5/

Из предложенных решений я не уверен, как:

  1. увеличить размер буфера по умолчанию
  2. Выделите дочерний пакет в свою собственную память.

Я ежедневно запускаю пакет в SQL Server 2005. Я работал нормально до 12-го числа. Я предполагаю, что размер файла данных, который мы используем для импорта данных в базу данных, вырос до размера, который был слишком велик для обработки базы данных. Это всего лишь 8,90 МБ CSV-файла. Импорт представляет собой прямой столбец для импорта столбцов.

Дочерним пакетом проблемы является шаг 1, он не выполняется, продолжает и успешно завершает следующие 8 шагов.

Ответы [ 3 ]

4 голосов
/ 17 марта 2009

Сколько памяти выделено для SQL Server? Сколько памяти выделяется за пределами пространства процесса SQL Server?

Причина, по которой я спрашиваю, заключается в том, что память SSIS выделяется из области памяти memToLeave, которая находится за пределами пространства процесса SQL Server.

См. здесь для получения подробной информации о настройке объема памяти, доступной для части памяти memToLeave.

Об общей настройке производительности служб SSIS см. В следующей статье.

http://technet.microsoft.com/en-gb/library/cc966529.aspx

Надеюсь, это имеет смысл, но не стесняйтесь, напишите мне, как только вы переварите материал.

Приветствия

1 голос
/ 18 марта 2009

Чтобы изменить размер буфера, выберите задачу «Поток данных» и измените свойства DefaultBufferMaxRows, MaxBufferSize. Они вместе определяют размер буфера.

Обратите внимание, что в обсуждении, которое вы связали, пользователь первоначально увеличил размер буфера (до 100 МБ), что, вероятно, вызвало проблему, и было рекомендовано уменьшить его. Размер буфера по умолчанию (10 МБ) обычно должен быть в порядке.

Чтобы запустить дочерний пакет в отдельном процессе, задайте свойство ExecuteOutOfProcess задачи «Выполнение пакета» (в основном пакете).

Но прежде всего: убедитесь, что вы действительно используете виртуальную память, а не реальную память, что обычно более вероятно. Посмотрите в диспетчере задач процессы, которые потребляют память на этом компьютере.

1 голос
/ 17 марта 2009

Случайная мысль: утечка памяти?

Нашим продуктовым кластером (большая корпоративная сборка) был SQL 2005 SP1. Утечки памяти, перезагрузка нужна каждые 1-4 недели.

SP2 + HF 3068: исправлено

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