
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
  | 
| 
 30.01.2014, 17:07 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Дано: файл .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? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 17:17 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  была такая утилита, если не ошибаюсь - bulk.exe, позволяющая быстро вливать данные в сервер. А с другой стороны - чем не нравится создание пакета, что мешает автоматизировать его создание через vba? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 17:33 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Shocker.Pro, утилиту я вспомнил уже после создания поста; буду завтра пробовать. Что до .dtsx - с ним две проблемы: 1) редактирование .dtsx (пути и имени файла-источника) из VBA - это какие References надо подключить к проекту? И примеры кода, если можно; 2) можно его в VBA запустить на выполнение без появления после этого на экране окна Execute Package Utility с необходимостью нажимать кнопку Execute? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 18:03 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Насколько я понимаю, никто не мешает создавать и выполнять пакеты с помощью TSQL, то есть ни о каком Execute Package Utility речь не идет. Если хочется работать с объектами, возможно, можно все это делать и через SQL-DMO По обоим вопросам лучше консультироваться в разделе форума по MSSQL ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 18:04 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Shocker.Pro, там тоже про утилиту bcp напомнили. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 18:08 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Так ты им не рассказывай про VBA. Для них это просто любой клиент, способный либо, выполнять TSQL-команды, либо работать с DMO. Так что просто задай вопрос, как с помощью TSQL создать нужный пакет. Ну либо пользуй bcp, как там подсказали ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 19:55 
 | 
|||
|---|---|---|---|
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  По опыту, 800мб это не так уж много, непонятно, что там dts 15 минут делает. DaniilSeryi Вставка с чтением из файла по 1000 строк и их вставкой в таблицу сервера сожрёт ещё больше времени.Не верю (с). 3 миллиона строк я из VBA не вставлял, но более 800мб — да. В 15 минут на VBA я готов поверить, самый долгий импорт на моей памяти занимал минут сорок, но там было больше данных, но 6 ЧАСОВ?? Покажите код. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 19:57 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Antonariyнепонятно, что там dts 15 минут делает.DaniilSeryiза 15 минут, включая создание пакета с нуля. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 19:58 
 | 
|||
|---|---|---|---|
  
  | 
|||
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Antonariyно там было больше данных, но 6 ЧАСОВ??кстати, перед таким импортом надо убирать индексы и констрейнты с таблицы, возможно автор этого не делает ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 30.01.2014, 20:03 
 | 
|||
|---|---|---|---|
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  Shocker.ProAntonariyно там было больше данных, но 6 ЧАСОВ??кстати, перед таким импортом надо убирать индексы и констрейнты с таблицы, возможно автор этого не делаеткстати да, индексы могут в разы просаживать скорость вставки ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 31.01.2014, 08:35 
 | 
|||
|---|---|---|---|
Методы копирования данных из Excel и csv-файлов в MS SQL, сравнимые по скорости с dtsx?  | 
|||
| 
 #18+ 
  
    
  еще можно использовать команду  bulk insert   языка T-SQL это аналог утилиты bcp ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
  | 

start [/forum/topic.php?fid=60&tablet=1&tid=2156543]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    61ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    51ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 13ms | 
| total: | 173ms | 

    | 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...