none
Импорт из файла Excel RRS feed

  • Общие обсуждения

  • С помощью мастера импорта и экспорта пытаюсь загрузить содержимое файла Excel в базу SQL.

    SQL - Express 64-bit (14.0)

    OS - Win 10 64-bit, ОЗУ - 32Гб

    Файл Excel - строк порядка 500 000, столбцов - 15, объем - 70Мб

    При импорте получаю ошибки подобного рода (в окне импорта виден прогресс по строкам, так вот останавливается всегда на разных местах):

     - "Задача потока данных 1: Диспетчеру буферов не удалось выделить память размером 3145632 байт, и невозможно выгрузить ни один из буферов, чтобы снизить потребность в расходе памяти. Имеется 6 буферов, заблокировано 6. Недостаточно памяти для конвейера: либо мал общий объем установленной памяти, либо она занята другими процессами, либо заблокировано слишком много буферов."-

     - "Данные 0x4004800f: Задача потока данных 1: Диспетчер буфера выделил 3 МБ в 1 физических буферах.
     (Мастер импорта и экспорта SQL Server)"

    - Данные 0x4004800d: Задача потока данных 1: Диспетчеру буферов не удалось выделить память размером 3145632 байт, и невозможно выгрузить ни один из буферов, чтобы снизить потребность в расходе памяти. Имеется 2 буферов, заблокировано 2. Недостаточно памяти для конвейера: либо мал общий объем установленной памяти, либо она занята другими процессами, либо заблокировано слишком много буферов.
     (Мастер импорта и экспорта SQL Server)

    - Ошибка 0xc0047012: Задача потока данных 1: Не удалось поместить 3145632 байт в буфер.
     (Мастер импорта и экспорта SQL Server)
     
     - Ошибка 0xc0047011: Задача потока данных 1: Загрузка системной памяти составляет 29. Объем физической памяти составляет 34171584512 байт, из которых свободно 24032681984 байт. Объем виртуальной памяти составляет 2147352576 байт, из которых свободно 81674240 байт. Объем файла подкачки составляет 39271858176 байт, из которых свободно 27124244480 байт.
     (Мастер импорта и экспорта SQL Server)

    Конкретные цифры могут отличаться раз от раза (пробовал даже с разных машин запускать), но общий смысл ошибок остается.

    Что пробовал: 

    - в свойствах сервера SQL - "память" - "максимальный размер" ставил и 4000, и 8000, и 12000

    - использовать разные драйверы в окне "назначение" (и OLE, и NET; даже специально инсталил драйвер SQL Native Client) - безрезультатно

    - пробовал играться с содержимым файла. Если оставляю тысяч 200-300 строк - импорт проскакивает

    - пробовал другие файлы с похожим содержимым. Некоторые импортируются и при 500 000 строк, но более 700 000 не получалось ни разу.

    Где бы что подкрутить, чтоб заработало? Понимаю, что собака зарыта где-то в 32-bit делах и драйверах, но (если не ошибаюсь) несколько лет назад я импортил файлы и большего размера - и все было ОК. Или подобного рода ограничения обойти невозможно?

    6 октября 2020 г. 10:09

Все ответы