sql >> Database >  >> RDS >> PostgreSQL

Grote statistische sets verzamelen met pg_stat_statements?

1.

van wat ik heb gelezen, hasht het de query en bewaart het in DB, waarbij de tekst wordt opgeslagen in FS. Dus de volgende zorg is meer te verwachten dan een overbelast gedeeld geheugen:

de hash van tekst is zo veel kleiner dan tekst, dat ik denk dat je je geen zorgen hoeft te maken over het verbruik van extensiegeheugen als je lange zoekopdrachten vergelijkt. Vooral wetende dat die extensie Query Analyzer gebruikt (wat voor ELKE werkt) zoek ANYWAY ):

pg_stat_statements.max instellen 10 keer groter zou volgens mij 10 keer meer gedeeld geheugen moeten kosten. De groei moet lineair zijn . Het staat niet zo in de documentatie , maar zou logischerwijs zo moeten zijn.

Er is geen antwoord of het veilig is of niet om de instelling op een aparte waarde in te stellen, omdat er geen gegevens zijn over andere configuratiewaarden en HW die u heeft. Maar aangezien groei lineair zou moeten zijn, overweeg dan dit antwoord:"als je het instelt op 5K en de runtime van de query is bijna niets gegroeid, dan zal het instellen op 50K het bijna niets tien keer verlengen". Tussen haakjes, mijn vraag - wie is er om 50000 langzame verklaringen te graven? :)

2.

Deze extensie maakt al een pre-aggregatie voor "dis-valued"-statement. U kunt het rechtstreeks in DB selecteren, dus het verplaatsen van gegevens naar een andere db en het daar selecteren geeft u alleen het voordeel dat u de oorspronkelijke DB ontlaadt en een andere laadt. Met andere woorden, u bespaart 50 MB voor een zoekopdracht op origineel, maar besteedt hetzelfde aan een andere. Is het logisch? Voor mij ja. Dit is wat ik zelf doe. Maar ik bewaar ook uitvoeringsplannen voor de verklaring (die geen deel uitmaakt van de extensie pg_stat_statements). Ik denk dat het afhangt van wat je hebt en wat je hebt. Dat is absoluut niet nodig vanwege een aantal vragen. Nogmaals, tenzij je zo'n groot bestand hebt dat de extensie kan




  1. Fix "FOUT:elke INTERSECT-query moet hetzelfde aantal kolommen hebben" in PostgreSQL

  2. Ingewikkelde mySQL-query op php-pagina

  3. Groeperen per maand in Oracle

  4. Update dubbele rijen met dubbele gevonden id