powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
12 сообщений из 12, страница 1 из 1
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38543948
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: файл .csv размером в 800+ МБ, 3570 тысяч строк. При помощи .dtsx-пакета он втягивается в MS SQL за 15 минут, включая создание пакета с нуля. Недостаток: использование .dtsx-пакета.

Есть вариант с копированием данных из файла в промежуточную базу Access, к которой создан linked server на MS SQL Server-e. После закачки данных в БД Access на сервере запускается хранимая процедура, качающая данные с linked server-a. Требует 40 минут. Недостаток - необходимость создавать linked server на сервере.

Если же работать с файлом из VBA с помощью insert into [ODBC; Driver={SQL Server}...].ИмяТаблицы FROM [...]
, то тогда процесс грозится растянуться часов на 6. Недостаток: время.

Вставка с чтением из файла по 1000 строк и их вставкой в таблицу сервера сожрёт ещё больше времени. Недостаток: время.

Вопрос: какие варианты VBA-кода позволят сократить время загрузки данных из .xlsx/.csv файлов на MS SQL Server до времени, всего в 2-3 раза больше, чем время работы с .dtsx пакетом, без создания дополнительных объектов (процедур или linked server-ов) на MS SQL Server-e?
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38543960
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
была такая утилита, если не ошибаюсь - bulk.exe, позволяющая быстро вливать данные в сервер.

А с другой стороны - чем не нравится создание пакета, что мешает автоматизировать его создание через vba?
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38543986
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

утилиту я вспомнил уже после создания поста; буду завтра пробовать.
Что до .dtsx - с ним две проблемы:
1) редактирование .dtsx (пути и имени файла-источника) из VBA - это какие References надо подключить к проекту? И примеры кода, если можно;
2) можно его в VBA запустить на выполнение без появления после этого на экране окна Execute Package Utility с необходимостью нажимать кнопку Execute?
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544045
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, никто не мешает создавать и выполнять пакеты с помощью TSQL, то есть ни о каком Execute Package Utility речь не идет.
Если хочется работать с объектами, возможно, можно все это делать и через SQL-DMO

По обоим вопросам лучше консультироваться в разделе форума по MSSQL
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544050
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

там тоже про утилиту bcp напомнили.
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544056
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ты им не рассказывай про VBA.
Для них это просто любой клиент, способный либо, выполнять TSQL-команды, либо работать с DMO. Так что просто задай вопрос, как с помощью TSQL создать нужный пакет.
Ну либо пользуй bcp, как там подсказали
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544196
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По опыту, 800мб это не так уж много, непонятно, что там dts 15 минут делает.

DaniilSeryi Вставка с чтением из файла по 1000 строк и их вставкой в таблицу сервера сожрёт ещё больше времени.Не верю (с). 3 миллиона строк я из VBA не вставлял, но более 800мб — да. В 15 минут на VBA я готов поверить, самый долгий импорт на моей памяти занимал минут сорок, но там было больше данных, но 6 ЧАСОВ??

Покажите код.
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544198
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyнепонятно, что там dts 15 минут делает.DaniilSeryiза 15 минут, включая создание пакета с нуля.
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544199
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyно там было больше данных, но 6 ЧАСОВ??кстати, перед таким импортом надо убирать индексы и констрейнты с таблицы, возможно автор этого не делает
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544203
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAntonariyно там было больше данных, но 6 ЧАСОВ??кстати, перед таким импортом надо убирать индексы и констрейнты с таблицы, возможно автор этого не делаеткстати да, индексы могут в разы просаживать скорость вставки
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544479
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще можно использовать команду bulk insert языка T-SQL
это аналог утилиты bcp
...
Рейтинг: 0 / 0
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
    #38544533
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Насчёт индексов и констрейтов я в курсе, фокус в том, что на таблице их нет.
Объём данных - во всех случаях один и тот же.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]