Co mamy (oprogramowanie):
- PostrgeSQL 9.3 z konfiguracją podstawową (bez zmian
postgresql.conf
) - Windows 7 64-bitowy
Sprzęt komputerowy:
- Intel Core i7-3770 3,9 GHz
- 32 GB pamięci RAM
- WDC WD10EZRX-00L4HBAta Drive (1000 Gb, SATA III)
Tak więc musimy załadować do DB aprox. 100 000 000 wierszy z kolumną bytea i prostszych 500 000 000 wierszy (bez LOB). Istnieją 2 varchar
indeksy na 1. stole (o długości 13, 19) i 2 varchar
indeksy na 2. stole (18, 10 długości). Istnieją również sekwencje generowania identyfikatorów dla każdej tabeli.
Do tej pory te operacje są wykonywane przy 8 połączeniach równoległych z wielkością partii 50 JDBC. Poniższy rysunek pokazuje obciążenie systemu: zerowe obciążenie postgresql
procesów. Po 24 godzinach załadowania załadowaliśmy tylko 10 000 000 wierszy, co jest wynikiem bardzo wolnym.
Prosimy o pomoc w strojeniu PostrgreSQL
konfiguracji w celu:
1) w przypadku bardzo szybkiego ładowania tej ilości danych jest to operacja jednorazowa, więc może być konfiguracją tymczasową
2) dla trybu produkcyjnego do wykonywania umiarkowanej liczby SELECT w tych 2 tabelach według ich indeksów bez łączenia i bez sortowania.
źródło