Em 10 de janeiro de 2017 12:02, Cleiton Luiz Domazak <cleitondoma...@gmail.com> escreveu: > > > 2017-01-10 11:35 GMT-02:00 Neto pr <neto...@gmail.com>: >> >> Ola pessoal >> >> No meu trabalho de Pós, preciso armazenar os planos de execucoes das >> consultas submetidas (explain consulta). >> Nao gostaria de armazenar o plano de execucao em texto puro, pois >> somente alguns dados que me interessam, como por exemplo o custo total >> da consulta. >> >> Alguem tem alguma sugestao para armazenar o plano de execucao no banco >> de dados, separado em campos como: textosql, custo total, tempo, >> etc... > > > Dê uma olhada no [1] auto_explain se não lhe atende
Cleiton, acho que ira servir sim. Como preciso dos dados do Explain Analyse disponivel para uma aplicacao JAVA, a principio pensei em armazenar o resultado do Auto-Explain em um arquivo XML, e apos a aplicacao ira ler esse arquivo. Como o XML cria tags para cada item, fica facil extrair por exemplo o custo total (tag <Total-Cost>) e outras info... Antes disso pensei no comando COPY[1] abaixo, mas acho que nao serve para comando Explain Analyse. COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; Enfim, como nao encontrei outra opcao, vou tentar exportar XML e ler o arquivo, para apos armazenar no Banco de dados. ------------------------------ saida do log para query: select pg_sleep((select 1)); ----------------------------------- LOG: duration: 1007.321 ms plan: <explain xmlns="http://www.postgresql.org/2009/explain"> <Query-Text>select pg_sleep((select 1));</Query-Text> <Plan> <Node-Type>Result</Node-Type> <Startup-Cost>0.01</Startup-Cost> <Total-Cost>0.03</Total-Cost> <Plan-Rows>1</Plan-Rows> <Plan-Width>0</Plan-Width> <Actual-Startup-Time>1007.210</Actual-Startup-Time> <Actual-Total-Time>1007.211</Actual-Total-Time> <Actual-Rows>1</Actual-Rows> <Actual-Loops>1</Actual-Loops> <Plans> <Plan> <Node-Type>Result</Node-Type> <Parent-Relationship>InitPlan</Parent-Relationship> <Subplan-Name>InitPlan 1 (returns $0)</Subplan-Name> <Startup-Cost>0.00</Startup-Cost> <Total-Cost>0.01</Total-Cost> <Plan-Rows>1</Plan-Rows> <Plan-Width>0</Plan-Width> <Actual-Startup-Time>0.032</Actual-Startup-Time> <Actual-Total-Time>0.033</Actual-Total-Time> <Actual-Rows>1</Actual-Rows> <Actual-Loops>1</Actual-Loops> </Plan> </Plans> </Plan> </explain> [1] https://www.postgresql.org/docs/9.3/static/runtime-config-logging.html > >> >> Caso nao encontre uma solucao melhor, vou ter que varrer a string >> texto (saida do comando explain), para encontrar o custo total, tempo >> etc.. para apos armazenar em uma tabela no banco de dados. >> >> []`s Neto > > > 1- https://www.postgresql.org/docs/9.2/static/auto-explain.html >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral