Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Duża ilość danych - dziwne zachowanie postgresa, Zacięcia, brak realizacji insertów
Ziels
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:00