Po włączeniu powolnego rejestrowania zapytań, wiele z nich zajmuje COMMIT
i zajmuje więcej niż kilka sekund w naszej bazie danych produkcji. W trakcie dochodzenia są to zazwyczaj proste transakcje: pobierz wiersz, UPDATE
wiersz, COMMIT
. Identyfikatory s i UPDATE
w tych konkretnych transakcjach nie są rejestrowane jako wolne. Czy jest coś, co możemy zrobić, lub narzędzia, których możemy użyć, aby znaleźć przyczynę tych powolnych zobowiązań? Pracujemy na SSD i przesyłamy strumieniowo do niewolnika, jeśli to robi różnicę.Debugowanie powolne PostgreSQL 9.3 ZOBOWIĄZANIA
9
A
Odpowiedz
0
Zatwierdzenia PostgreS są synchroniczne. Oznacza to, że będą czekać na zakończenie zapisów WAL przed przejściem do następnego. Możesz dostosować ustawienia WAL w pliku konfiguracyjnym, aby to zmienić.
Możesz ustawić poziom zatwierdzania na asynchroniczny na poziomie sesji/użytkownika lub bazy danych z wartością synchronous_commit w pliku konfiguracyjnym.
Po stronie bazy danych.
Odkurz tabele i zaktualizuj statystyki. To pozbędzie się martwych krotek od twoich aktualizacji, będzie ich wiele.
VACUUM ANALYZE
Powiązane problemy
- 1. Debugowanie czasami bardzo powolne
- 2. PostgreSQL 9.3: Sharelock problem z prostego INSERT
- 3. debugowanie wyzwalacza postgresql
- 4. Visual Studio JavaScript debugowanie bardzo powolne
- 5. Przesyłanie bez zobowiązania
- 6. Konfiguracja STS z JPA 2.0 przy użyciu PostgreSQL 9.3
- 7. Porównanie typów JSON i User-Defined w PostgreSQL 9.3
- 8. Jak utworzyć indeks na polu json w PostgreSQL 9.3
- 9. Jak zatwierdzać zobowiązania na Githubie
- 10. iOS 9.3 Zarządzanie kolorami/Profile
- 11. "nie można zapisać do pliku dziennika pg_upgrade_internal.log" podczas aktualizacji z Postgresql 9.1 do 9.3
- 12. Jak korzystać z operatorów JSON na kolumnie z wpisanymi JSON w postgresql 9.3
- 13. Jak zrestartować Postgresql
- 14. Uruchamianie hibernacji bardzo powolne
- 15. Postgresql migracja JSON do JSONB
- 16. iOS 9.3 zamrożenie po wywołaniu openURL
- 17. Utwórz tabelę w oknie dokowanym PostgreSQL
- 18. QT Creator 3.0.1 Debugowanie w systemie Windows nagle staje się powolne. Czemu?
- 19. Debugowanie stron ASP.NET bardzo powolne z kilkoma tysiącami tymczasowych plików ASP.NET
- 20. bardzo powolne uruchamianie aplikacji rozruchowej
- 21. PostgreSQL sortowania cyrylicznych "ь"
- 22. PostgreSQL Bitmap Skanowanie sterty na indeksie jest bardzo powolne, ale skanowanie tylko indeksu jest szybkie
- 23. Powolne działanie Regexa
- 24. powolne szyny stos
- 25. Powolne czasy rozruchu logback
- 26. Powolne operacje Git
- 27. HTMLUnit: bardzo powolne wykonywanie?
- 28. Powolne działanie SQL
- 29. Powolne Light.exe - wydanie AV
- 30. Powolne uruchamianie z Ionic
Przesyłanie strumieniowe do repliki może mieć duże znaczenie. Czy włączona jest replikacja synchroniczna? Jeśli tak, może to łatwo spowodować opóźnione zatwierdzenia. Możesz to potwierdzić, tymczasowo wyłączając synchroniczną replikację (ustawienie 'synchronous_standby_names = ''' lub ustawienie 'synchronous_commit = 'local'') –
Oba te ustawienia są ustawione domyślnie, co, jak rozumiem w dokumentach, oznacza, że synchronous_commit jest już skutecznie "lokalny". –
Spróbuj 'log_lock_waits = true', aby sprawdzić, czy twoje zapisy są kontestowane. – teppic