PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zbieranie dużych zbiorów statystycznych za pomocą pg_stat_statements?

1.

z tego, co przeczytałem, haszuje zapytanie i przechowuje je w DB, zapisując tekst w FS. Więc następny problem jest bardziej oczekiwany niż przeciążenie pamięci współdzielonej:

hash tekstu jest o wiele mniejszy niż tekst, więc myślę, że nie powinieneś martwić się zużyciem pamięci rozszerzenia porównując długie zapytania. Zwłaszcza wiedząc, że rozszerzenie korzysta z analizatora zapytań (który będzie działał dla KAŻDEGO zapytanie WSZYSTKO ):

Ustawienie pg_stat_statements.max 10 razy większy powinien zajmować 10 razy więcej pamięci współdzielonej, jak sądzę. Wzrosty powinny być liniowe . Nie jest to napisane w dokumentacji , ale logicznie powinno tak być.

Nie ma odpowiedzi, czy jest to bezpieczne, czy nie, aby ustawić ustawienie na odrębną wartość, ponieważ nie ma danych o innych wartościach konfiguracyjnych i posiadanym HW. Ale ponieważ wzrost powinien być liniowy, rozważ tę odpowiedź:„jeśli ustawisz ją na 5 KB, a czas wykonywania zapytań nie urósł prawie nic, ustawienie go na 50 KB przedłuży go prawie nic razy dziesięć”. BTW, moje pytanie - kto wykopie 50000 powolnych stwierdzeń? :)

2.

To rozszerzenie wykonuje już agregację wstępną dla instrukcji „z pominięciem wartości”. Możesz wybrać go bezpośrednio w DB, więc przeniesienie danych do innej bazy danych i wybranie jej tam da ci tylko korzyść z wyładowania oryginalnej bazy danych i załadowania innej. Innymi słowy, oszczędzasz 50 MB na zapytanie o oryginał, ale wydajesz tyle samo na inne. Czy ma sens? Dla mnie tak. To właśnie robię sam. Ale zapisuję również plany wykonania dla instrukcji (które nie jest częścią rozszerzenia pg_stat_statements). Wierzę, że to zależy od tego, co masz i co masz. Zdecydowanie nie ma takiej potrzeby tylko ze względu na ilość zapytań. Znowu, chyba że masz tak duży plik, że rozszerzenie może




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać zapytanie o ciąg z JSON na podstawie innego ciągu w JSON w PostgreSQL?

  2. Jak zrobić SUMA w dwóch niepowiązanych tabelach?

  3. Błąd asercji w:Django-rest-Framework

  4. Funkcja LEAST() w PostgreSQL

  5. procedura składowana postgresql z zapytaniem na kilku schematach