Eu tenho um PostgreSQL
esquema de banco de dados herdado com centenas de funções. Sei que alguns deles não são mais usados e quero excluí-los.
Qual é a maneira mais fácil de descobrir quais procedimentos são executados às vezes e quais não são? Existe algum tipo de estatística sobre o uso de procedimentos no PostgreSQL?
A versão do mecanismo usado é PostgreSQL 9.5.
Sim , use o coletor de estatísticas. O manual:
Ênfase em negrito minha.
Portanto, isso está desativado por padrão. Se todas as funções relevantes forem
LANGUAGE plpgsql
, basta defini-la comopl
inpostgresql.conf
e recarregar . Não há necessidade de reiniciar o servidor para esta configuração.Recarregue com
pg_ctl reload
. Ou em uma instalação típica do Debian (relacionada):Postgres começa a coletar informações. Após um período de tempo adequado, verifique os registros de rastreamento. Cuidado, porém, algumas funções importantes podem não ser chamadas em semanas. Sua chamada ...
Como acessar as estatísticas coletadas? O manual novamente:
Basicamente:
Ou você pode procurá-lo facilmente com o pgAdmin (ou outra GUI). No pgAdmin (3 ou 4), selecione a função e veja na aba "Statistics" no canto superior direito: "Number of Calls" .
À parte:
não existem "procedimentos armazenados" verdadeiros antes do Postgres 11, apenas funções. O termo "procedimento" é freqüentemente usado como sinônimo.