Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Ускорение импорта данных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
Нужно на сервер залить большой объем данных (sql: 17 гиг, lob: 38 гиг). Файлы данных, клиент, сервер находятся на одной физической машине. Загружаю через IBExpert. Сейчас прогнозированное время загрузки 117 часов.

Вопрос: можно ли как-то радикально увеличить скорость загрузки настройками сервера? Индексов в базе нет. Триггеры отключены.

Операция разовая.

Идею выгружать данные в разные файлы, а потом грузить несколькими клиентами знаю и сейчас над ней думаю


С уважением, Vasilisk
3 июн 20, 14:22    [22144903]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
AltHasp
Member

Откуда:
Сообщений: 147
_Vasilisk_,

IBeScript быстрее будет, чем IBExpert (хотя автор у них один). Если есть возможность использовать RAMDisk для временных файлов и разнести сервер и клиент на разные процы. А машина какая (CPU,RAM, hdd/ssd) ?

Удачи !
3 июн 20, 14:34    [22144915]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28878
_Vasilisk_,

_Vasilisk_
потом грузить несколькими клиентами

только в разные таблицы.

ssd ?
3 июн 20, 14:35    [22144916]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

FW = off.
XNET.
Ну и просто посмотреть resmon-ом где, собственно, бутылочное горлышко.

Posted via ActualForum NNTP Server 1.5

3 июн 20, 14:40    [22144923]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
hvlad
Member

Откуда:
Сообщений: 10955
Dimitry Sibiryakov
XNET
embedded, какой xnet
3 июн 20, 14:59    [22144945]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
AltHasp
IBeScript быстрее будет, чем IBExper
Я все равно гружу функцией ibec_ExecSQLScript, так что разницы, думаю, не будет
AltHasp
RAMDisk для временных файлов
Мысль!
AltHasp
А машина какая (CPU,RAM, hdd/ssd) ?
Какой-то виртуальный сервер. 6 ядер 16 гиг. Диск ХЗ. Там все виртуализировано
kdv
только в разные таблицы.
Значит не прокатит. У меня 80% данных лежат в двух таблицах. Во второй лежит 95% блобов всей базы
Dimitry Sibiryakov
FW = off.
XNET.
Спасибо
3 июн 20, 15:01    [22144949]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

hvlad
embedded, какой xnet

Так-то оно, конечно, да, но у меня теплится надежда на возможность распараллеливания
работы СУБД и клиента, парсящего файлы.

Posted via ActualForum NNTP Server 1.5

3 июн 20, 15:08    [22144961]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
hvlad
Member

Откуда:
Сообщений: 10955
Dimitry Sibiryakov
у меня теплится надежда на возможность распараллеливания
работы СУБД и клиента, парсящего файлы.
В каком месте она сама появится ?

Клиент вполне может попробовать в несколько потоков загружать данные.
3 июн 20, 15:34    [22145006]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
hvlad
Member

Откуда:
Сообщений: 10955
_Vasilisk_,

ещё есть EXTERNAL TABLE, но их нужно уметь готовить, и понимать проблемы с нуллами
3 июн 20, 15:35    [22145009]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
hvlad,

так они же вроде не умеют работать с блобами, а у ТС большая часть базы из них
3 июн 20, 15:41    [22145016]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
hvlad
Member

Откуда:
Сообщений: 10955
Симонов Денис,

да, блобы я упустил
3 июн 20, 16:02    [22145044]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
Dimitry Sibiryakov
Так-то оно, конечно, да, но у меня теплится надежда на возможность распараллеливания
работы СУБД и клиента, парсящего файлы.
По статистике IBExpert и Firebird загружают процессор поровну
hvlad
ещё есть EXTERNAL TABLE,
Мне нужно раз влить данные и забыть об этом навсегда
3 июн 20, 16:09    [22145055]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
shalamyansky
Member

Откуда:
Сообщений: 156
_Vasilisk_

Идею выгружать данные в разные файлы, а потом грузить несколькими клиентами знаю и сейчас над ней думаю


Я так делаю. База и входные данные на полтора десятичных порядков больше, чем у вас, время загрузки одним клиентом около месяца. данные раскидываются по всем таблицам, тех около 200.

Провел эксперимент с параллельными клиентами. Дедлоки случаются, но нечасто, данные сравнительно хорошо сегментированы. Опытным путем определил оптимум в 4 клиента. И да, загрузка быстрее в разы, если не в 4, то раза в 3 точно. Все клиенты и сервер на одном компьютере. Но в моей задаче довольно много работы у клиента - парсит xml файлы.
3 июн 20, 16:10    [22145056]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Vlad F
Member

Откуда:
Сообщений: 1295
shalamyansky,

На похожей задаче в дополнение к многопотоковому парсингу/вставке за счет применения FireDAC Array DML у меня получилось дополнительно ускориться еще примерно на 40%.
3 июн 20, 17:12    [22145118]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
Vlad F,

Batch API 4.0 рулит 22080521 но только при использовании сетевых протоколов. На embedded никакого выигрыша не даёт, что ожидаемо
3 июн 20, 17:18    [22145124]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Vlad F
Member

Откуда:
Сообщений: 1295
Симонов Денис,

Четверки я на том проекте так и не дождался, однако и на тройке, причем, именно в embedded варианте, получил описанное ускорение. Так что затеваться, имхо, стоит.
3 июн 20, 17:26    [22145131]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
Симонов Денис
Batch API 4.0 рулит 22080521 но только при использовании сетевых протоколов. На embedded никакого выигрыша не даёт, что ожидаемо
Т.е. Embedded все-таки сильно лучше чем локальный XNET? На стандартном API. Или я неправильно читаю статистику?
3 июн 20, 18:13    [22145175]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1588
Я бы еще входные данные поделил на кусочки, или заранее продумал что делать в случае частичного импорта.

Т.е. если на 101 часе "что-то пошло не так" и загрузка прервалась, что бы можно было грузить не опять все заново а хотя бы не все, или в идеале - только то что еще не загружено.
4 июн 20, 03:54    [22145415]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
_Vasilisk_,

правильно. Любой дополнительный слой создаёт дополнительные издержки
4 июн 20, 09:19    [22145483]     Ответить | Цитировать Сообщить модератору
 Re: Ускорение импорта данных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
fraks
Я бы еще входные данные поделил на кусочки, или заранее продумал что делать в случае частичного импорта.
Это я уже
Симонов Денис
правильно.
Спасибо за информацию и за статистику
4 июн 20, 10:27    [22145525]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить