본문 바로가기

프로그래밍/Database

[StackOverflow] SQL Server profiler 같은 것이 PostgreSQL 에도 있나?

SQL Server profiler 같은 것이 PostgreSQL 에도 있나?


http://stackoverflow.com/q/2430380/100093


PostgreSQL 서버로 보내지는 쿼리를 보고 싶다. MS SQL 서버에서는 SQL Server profiiler 를 사용했었는데, PostgreSQL에서는 어떻게 하는지 아직 모르고 있다. 살 수 있는 툴은 몇 개 있는 것 같은데, 오픈소스로 있으면 좋겠다.


BozoJoe ( 2010-03-12 )



http://stackoverflow.com/a/2430393/100093


log_statement 설정을 사용해서 서버로의 모든 쿼리 리스트를 얻을 수 있다.


http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-STATEMENT


이걸 설정하고, 로깅 파일 패쓰를 설정하면 리스트를 볼 수 있다. 오래 걸리는 쿼리만 로깅하도록 설정할 수도 있다.


그런 후에 쿼리를 가져와서 EXPLAIN 을 실행하면 그 쿼리로 어떤 일이 일어나는지 확인할 수 있다.


http://www.designmagick.com/article/23/Using-Explain/Using-Explain/page/2


Joshua Smith ( 2010-03-12 )



http://stackoverflow.com/a/2430862/100093


Joshua의 답에 더해서, 현재 어떤 쿼리가 실행되고 있는지 ( http://chrismiles.info/systemsadmin/databases/articles/viewing-current-postgresql-queries/ ) 알아내려면, 언제라도 다음 쿼리를 ( PGAdminIII 쿼리 창에서) 실행하면 된다.


SELECT datname,procpid,current_query FROM pg_stat_activity;


Sample output:


     datname    | procpid | current_query

 ---------------+---------+---------------

  mydatabaseabc |    2587 | <IDLE>

  anotherdb     |   15726 | SELECT * FROM users WHERE id=123 ;

  mydatabaseabc |   15851 | <IDLE>

 (3 rows)


vladr ( 2010-3-12 )

728x90