Что мы имеем (софт):
- PostrgeSQL 9.3 с базовой конфигурацией (без изменений
postgresql.conf
) - Windows 7 64 бит
Оборудование:
- Intel Core i7-3770 3,9 ГГц
- 32 ГБ ОЗУ
- Накопитель WDC WD10EZRX-00L4HBAta (1000 ГБ, SATA III)
Итак, мы должны загрузить в БД aprox. 100.000.000 строки с BYTEA колонке, и более простой 500.000.000 строк (без LOBs). Есть 2 varchar
индекса на 1-й таблице (с длиной 13, 19) и 2 varchar
индекса на 2-й таблице (длина 18, 10). Есть также последовательности для генерации идентификатора для каждой таблицы.
К настоящему времени эти операции выполняются с 8 соединениями параллельно с размером пакета 50 JDBC. На рисунке ниже показана нагрузка на систему: это нулевая нагрузка на postgresql
процессы. После 24 часов загрузки мы загрузили только 10 000 000 строк, что является очень медленным результатом.
Мы просим помощи в настройке PostrgreSQL
конфигурации в целях:
1) для сверхбыстрой загрузки этого количества данных, это однократная операция, поэтому это может быть временная конфигурация
2) для производственного режима для выполнения умеренного количества SELECT в эти 2 таблицы по их индексам без объединения и без сортировки.