PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Raccogliere insiemi statistici di grandi dimensioni con pg_stat_statements?

1.

da quello che ho letto, esegue l'hashing della query e la mantiene in DB, salvando il testo su FS. Quindi la prossima preoccupazione è più attesa della memoria condivisa sovraccaricata:

l'hash del testo è molto più piccolo del testo, che penso che non dovresti preoccuparti del consumo di memoria di estensione confrontando query lunghe. Soprattutto sapendo che l'estensione utilizza Query Analyzer (che funzionerà per TUTTI interrogare COMUNQUE ):

Impostazione di pg_stat_statements.max Credo che 10 volte più grande dovrebbe richiedere 10 volte più memoria condivisa. Le crescite dovrebbero essere lineari . Non lo dice nella documentazione , ma logicamente dovrebbe essere così.

Non c'è risposta se è sicuro o meno impostare l'impostazione su un valore distinto, perché non ci sono dati su altri valori di configurazione e HW che hai. Ma poiché la crescita dovrebbe essere lineare, considera questa risposta:"se lo imposti su 5K e il runtime della query non è cresciuto quasi per nulla, impostarlo su 50K lo prolungherà quasi nulla per dieci". A proposito, la mia domanda:chi scaverà 50000 affermazioni lente? :)

2.

Questa estensione fa già una pre-aggregazione per l'istruzione "svalutata". Puoi selezionarlo direttamente su DB, quindi spostare i dati su un altro db e selezionarlo lì ti darà solo il vantaggio di scaricare il DB originale e caricarne un altro. In altre parole, risparmi 50 MB per una query sull'originale, ma spendi lo stesso per un altro. Ha senso? Per me sì. Questo è quello che faccio io stesso. Ma salvo anche i piani di esecuzione per l'istruzione (che non fa parte dell'estensione pg_stat_statements). Credo che dipenda da cosa hai e cosa hai. Sicuramente non ce n'è bisogno solo a causa di una serie di domande. Ancora una volta, a meno che tu non abbia un file così grande che l'estensione può