19.9. Estadísticas de rendimiento (Run-time Statistics) #

19.9.1. Estadísticas acumulativas de consultas e índices
19.9.2. Monitoreo de estadísticas

19.9.1. Estadísticas acumulativas de consultas e índices #

Estos parámetros controlan el sistema de estadísticas acumulativas de todo el servidor. Cuando está habilitado, se puede acceder a los datos recopilados a través de la familia de vistas del sistema pg_stat y pg_statio. Consulta la Chapter 27 para obtener más información.

track_activities (boolean) #

Habilita la recopilación de información sobre el comando que se está ejecutando actualmente en cada sesión, junto con su identificador y la hora en que ese comando comenzó su ejecución. Este parámetro está activado por defecto. Ten en cuenta que incluso cuando está habilitado, esta información solo es visible para los superusuarios, los roles con privilegios del rol pg_read_all_stats y el usuario propietario de las sesiones sobre las que se informa (incluidas las sesiones que pertenecen a un rol del cual tienen privilegios), por lo que no debería representar un riesgo de seguridad. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

track_activity_query_size (integer) #

Especifica la cantidad de memoria reservada para almacenar el texto del comando que se está ejecutando actualmente para cada sesión activa, para el campo pg_stat_activity.query. Si este valor se especifica sin unidades, se toma como bytes. El valor predeterminado es 1024 bytes. Este parámetro solo se puede establecer al inicio del servidor.

track_counts (boolean) #

Habilita la recopilación de estadísticas sobre la actividad de la base de datos. Este parámetro está activado de forma predeterminada, ya que el demonio de autovacuum necesita la información recopilada. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

track_cost_delay_timing (boolean) #

Habilita la medición del tiempo del retraso de vacuum basado en coste (consulta la Section 19.10.2). Este parámetro está desactivado de forma predeterminada, ya que consultará repetidamente al sistema operativo para obtener la hora actual, lo que puede causar una sobrecarga significativa en algunas plataformas. Puedes usar la herramienta pg_test_timing para medir la sobrecarga de la medición de tiempo en tu sistema. La información de tiempo de retraso de vacuum basado en coste se muestra en pg_stat_progress_vacuum, pg_stat_progress_analyze, en la salida de los comandos VACUUM y ANALYZE cuando se utiliza la opción VERBOSE, y por el autovacuum para los auto-vacuums y auto-analyzes cuando está configurado log_autovacuum_min_duration. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

track_io_timing (boolean) #

Habilita la medición del tiempo de las esperas de E/S de la base de datos. Este parámetro está desactivado de forma predeterminada, ya que consultará repetidamente al sistema operativo para obtener la hora actual, lo que puede causar una sobrecarga significativa en algunas plataformas. Puedes usar la herramienta pg_test_timing para medir la sobrecarga de la medición de tiempo en tu sistema. La información de tiempo de E/S se muestra en la vista pg_stat_database, en la vista pg_stat_io (si object no es wal), en la salida de la función pg_stat_get_backend_io() (si object no es wal), en la salida del comando EXPLAIN cuando se utiliza la opción BUFFERS, en la salida del comando VACUUM cuando se utiliza la opción VERBOSE, por el autovacuum para los auto-vacuums y auto-analyzes cuando se establece log_autovacuum_min_duration, y por pg_stat_statements. Solo los superusuarios and los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

track_wal_io_timing (boolean) #

Habilita la medición del tiempo de las esperas de E/S del WAL. Este parámetro está desactivado de forma predeterminada, ya que consultará repetidamente al sistema operativo para obtener la hora actual, lo que puede causar una sobrecarga significativa en algunas plataformas. Puedes usar la herramienta pg_test_timing para medir la sobrecarga de la medición de tiempo en tu sistema. La información de tiempo de E/S se muestra en la vista pg_stat_io para el object wal y en la salida de la función pg_stat_get_backend_io() para el object wal. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

track_functions (enum) #

Habilita el seguimiento de los conteos de llamadas a funciones y el tiempo utilizado. Especifica pl para realizar el seguimiento solo de las funciones de lenguajes procedimentales, o all para realizar el seguimiento también de las funciones de lenguaje SQL y C. El valor predeterminado es none, lo que desactiva el seguimiento de estadísticas de funciones. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar esta configuración.

Note

Las funciones de lenguaje SQL que son lo suficientemente simples como para ser insertadas en línea (inlined) en la consulta que las llama no serán rastreadas, independientemente de esta configuración.

stats_fetch_consistency (enum) #

Determina el comportamiento cuando se accede a las estadísticas acumulativas múltiples veces dentro de una transacción. Cuando se establece en none, cada acceso vuelve a obtener los contadores de la memoria compartida. Cuando se establece en cache, el primer acceso a las estadísticas de un objeto almacena en caché esas estadísticas hasta el final de la transacción a menos que se llame a la función pg_stat_clear_snapshot(). Cuando se establece en snapshot, el primer acceso a las estadísticas almacena en caché todas las estadísticas accesibles en la base de datos actual, hasta el final de la transacción a menos que se llame a la función pg_stat_clear_snapshot(). Cambiar este parámetro en una transacción descarta la captura (snapshot) de las estadísticas. El valor predeterminado es cache.

Note

El valor none es el más adecuado para los sistemas de monitoreo. Si se accede a los valores solo una vez, es el más eficiente. El valor cache garantiza que los accesos repetidos devuelvan los mismos valores, lo cual es importante para consultas que involucran autouniones (self-joins), por ejemplo. El valor snapshot puede ser útil al inspeccionar interactivamente las estadísticas, pero tiene una mayor sobrecarga, especialmente si existen muchos objetos en la base de datos.

19.9.2. Monitoreo de estadísticas #

compute_query_id (enum) #

Habilita el cálculo en el núcleo (in-core) de un identificador de consulta. Los identificadores de consulta se pueden mostrar en la vista pg_stat_activity, utilizando EXPLAIN, o emitirse en el registro si se configura mediante el parámetro log_line_prefix. La extensión pg_stat_statements también requiere que se calcule un identificador de consulta. Ten en cuenta que se puede utilizar alternativamente un módulo externo si el método de cálculo del identificador de consulta en el núcleo no es aceptable. En este caso, el cálculo en el núcleo debe estar siempre desactivado. Los valores válidos son off (siempre desactivado), on (siempre habilitado), auto, lo que permite que módulos como pg_stat_statements lo habiliten automáticamente, y regress que tiene el mismo efecto que auto, excepto que el identificador de consulta no se muestra en la salida de EXPLAIN para facilitar las pruebas de regresión automatizadas. El valor predeterminado es auto.

Note

Para asegurarse de que solo se calcule y muestre un identificador de consulta, las extensiones que calculan identificadores de consultas deberían lanzar un error si ya se ha calculado un identificador de consulta.

log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean) #

Para cada consulta, genera las estadísticas de rendimiento del módulo correspondiente en el registro del servidor. Este es un instrumento de perfilado básico, similar a la función del sistema operativo Unix getrusage(). log_statement_stats reporta las estadísticas de las sentencias totales, mientras que los otros reportan estadísticas por módulo. log_statement_stats no se puede habilitar junto con ninguna de las opciones por módulo. Todas estas opciones están desactivadas de forma predeterminada. Solo los superusuarios y los usuarios con el privilegio SET adecuado pueden cambiar estas configuraciones.