sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Recopilar grandes conjuntos estadísticos con pg_stat_statements?

1.

por lo que he leído, procesa la consulta y la mantiene en DB, guardando el texto en FS. Entonces, la próxima preocupación es más esperada que la memoria compartida sobrecargada:

el hash del texto es mucho más pequeño que el texto, por lo que creo que no debe preocuparse por el consumo de memoria de extensión al comparar consultas largas. Especialmente sabiendo que la extensión usa Query Analyzer (que funcionará para TODOS consulta DE TODOS MODOS ):

Configuración de pg_stat_statements.max 10 veces más grande debería tomar 10 veces más memoria compartida, creo. Los crecimientos deben ser lineales . No lo dice en la documentación , pero lógicamente debería ser así.

No hay respuesta si es seguro o no establecer la configuración en un valor distinto, porque no hay datos sobre otros valores de configuración y HW que tenga. Pero como el crecimiento debe ser lineal, considere esta respuesta:"si lo configura en 5K y el tiempo de ejecución de la consulta no ha crecido casi nada, establecerlo en 50K lo prolongará casi diez veces". Por cierto, mi pregunta:¿quién va a cavar 50000 declaraciones lentas? :)

2.

Esta extensión ya hace una agregación previa para la declaración "desvalorizada". Puede seleccionarlo directamente en la base de datos, por lo que mover datos a otra base de datos y seleccionarlo allí solo le dará el beneficio de descargar la base de datos original y cargar otra. En otras palabras, ahorra 50 MB para una consulta en el original, pero gasta lo mismo en otro. ¿Tiene sentido? Por mi si. Esto es lo que hago yo mismo. Pero también guardo los planes de ejecución para la declaración (que no es parte de la extensión pg_stat_statements). Yo creo que depende de lo que tengas y de lo que tengas. Definitivamente no hay necesidad de eso solo por una serie de consultas. Nuevamente, a menos que tenga un archivo tan grande que la extensión pueda