Necesito ver las consultas enviadas a un servidor PostgreSQL. Normalmente, usaría el generador de perfiles de SQL Server para realizar esta acción en la tierra de SQL Server, pero todavía tengo que encontrar cómo hacerlo en PostgreSQL. Parece haber bastantes herramientas de pago, espero que haya una variante de código abierto.
fuente
Agregando a la respuesta de Joshua, para ver qué consultas se están ejecutando actualmente, simplemente emita la siguiente declaración en cualquier momento (por ejemplo, en la ventana de consulta de PGAdminIII):
SELECT datname,procpid,current_query FROM pg_stat_activity;
Salida de muestra:
datname | procpid | current_query ---------------+---------+--------------- mydatabaseabc | 2587 | <IDLE> anotherdb | 15726 | SELECT * FROM users WHERE id=123 ; mydatabaseabc | 15851 | <IDLE> (3 rows)
fuente
Descubrí pgBadger ( http://dalibo.github.io/pgbadger/ ) y es una herramienta fantástica que me salvó la vida muchas veces. Aquí hay un ejemplo de informe: http://dalibo.github.io/pgbadger/samplev4.html . Si lo abre y va al menú 'superior', puede ver las consultas más lentas y las consultas que consumen mucho tiempo. Luego puede pedir detalles y ver bonitos gráficos que le muestran las consultas por hora y si usa el botón de detalles, puede ver el texto SQL en una forma bonita. Entonces puedo ver que esta herramienta es gratuita y perfecta.
fuente
Como opción, si usa pgAdmin (en mi imagen es pgAdmin 4 v2.1). Puede observar las consultas a través de la pestaña "Panel de control":
fuente
Puede utilizar la extensión pg_stat_statements .
Si ejecuta la base de datos en la ventana acoplable, simplemente agregue este comando
docker-compose.yml
; de lo contrario, solo consulte las instrucciones de instalación para su configuración:Y luego en la base de datos ejecute esta consulta:
CREATE EXTENSION pg_stat_statements;
Ahora para ver las operaciones que llevaron más tiempo ejecutar:
SELECT * FROM pg_stat_statements ORDER BY total_time/calls DESC LIMIT 10;
O juegue con otras consultas sobre esa vista para encontrar lo que está buscando.
fuente