Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Duża ilość danych - dziwne zachowanie postgresa
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Ziels
Witam

Mam plik z zapytaniami wielkości 815 MB - muszę umieścić te dane w bazie.

Plik zawiera dane do trzech tabel - dwie tabele z danymi, oraz trzecia która je łączy w relacji wiele do wielu.

Wpisów do tabel jest - 14k dla jednej, 13k dla drugiej, i około 30 milionów wpisów w tabeli która je łączy.

Ułożenie zapytań w pliku wyglądają tak:
Kod
INSERT INTO pierwsza tabela...
INSERT INTO druga tabela...
INSERT INTO relacje... <- multi insert często zawierający kilka tysięcy wpisów.

(kolejne inserty ułozone tak samo jak te powyżej)


Mój problem jest taki - po około pięciu milionach załadowanych wpisów (w obu tabelach znajduje się już wtedy około 3 tys. wpisów) do tabeli łączącej, dalej nie mogę wykonać żadnego inserta. Mogę usunąć kilka wpisów i insert wtedy również nie wejdzie. Pomaga dopiero przebudowanie bazy w symfony (czyli drop dla tych tabel i stworzenie ich od nowa). Myślałem na początku że wyczerpał się zakres liczbowy dla ID w tabeli-łączniku, ale to nie to jest problemem.


Na domiar złego po pierwszej takiej operacji coś się zepsuło i postgres nie wyświetla komunikatów o błędach - wyświetla co najwyżej że udał mu się insert, albo że udał mu się delete.


Wina może leżeć po strony hostingodawcy? Administratorzy jako limity przedstawili liczby z dokumentacji postgresa rzędu kilkudziestu TB, więc nie przekraczam ich na pewno. Ponadto twierdzą że w życiu nie widzieli takiej sytuacji.
Sedziwoj
Proste pytanie, testowałeś to lokalnie? To jest pierwsze co powinieneś zrobić, jak pójdzie lokalnie, to wiadomo, wina jest w hosting'u, jeśli nie działa lokalnie, to lecimy dalej.
Napisałeś "multi insert często zawierający kilka tysięcy wpisów", w jakim sensie multi?
Czy krotki w tych tabelach są dużej wielkości? Może powinieneś spróbować PREPARE. pgAdmin domyślnie używa COPY do backup, też można spróbować.
Ogólnie problemem może być wielkość pliku który próbujesz wykonać, ponieważ jakoś musi go przetworzyć, a jeśli zrobisz to nieodpowiednio pozapychasz takim plikiem wszystkie bufory, co może mieć różne skutki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.