Ошибка чтения "недостаточно места для хранения" при чтении большого файла Excel - PullRequest
3 голосов
/ 12 февраля 2020

При импорте данных из Excel в SQL появляется сообщение об ошибке ниже. память на макс. формат Excel - .xlsx. Размер файла Excel составляет 170 МБ (178 587 611 байт). Но я получил:

не хватает ошибки хранения.

Буду признателен, если кто-нибудь мне поможет.

Не удалось выполнить поток данных. Недостаточно памяти для обработки этой команды. (Исключение из HRESULT: 0x80070008) (Microsoft.SqlServer.DTSRuntimeWrap)

Ответы [ 2 ]

3 голосов
/ 12 февраля 2020

Эта ошибка исходит из среды выполнения служб SSIS, а не SQL Сервер.

Недостаточно места в SQL Сервер производит

Msg 9002, Level 17, State 4, Line 20
The transaction log for database 'XXX' is full due to 'ACTIVE_TRANSACTION'.

или

Msg 1105, Level 17, State 2, Line 20
Could not allocate space for object 'YYY' in database 'XXX' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Это не связано с хранилищем и обычно указывает на проблему с памятью. Сначала я бы попытался уменьшить размеры буфера в вашем потоке данных и убедиться, что в вашем потоке данных нет компонентов, требующих загрузки больших объемов данных в память, например поиска.

См. Поток данных Характеристики производительности

1 голос
/ 13 февраля 2020

Эта ошибка в основном возникает, когда обрабатывает большие файлы Excel с помощью адаптера OLE DB (менеджер соединений OLE DB или менеджер соединений EXCEL) , поскольку этот адаптер имеет много ограничений. Я предлагаю прочитать файл Excel в виде фрагментов . В подобных ситуациях я использую в основном сценарий C#, чтобы сделать это, или вы можете сделать это, применив контейнер от l oop к l oop сверх используемого диапазона в excel.

Еще одно предложение , использовать 64-разрядную версию Microsoft Excel . Это может увеличить объем обрабатываемых данных.

Для получения дополнительной информации вы можете обратиться к следующим ответам:

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