Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo Postgresql

Otimizando o Postgresql para BI seq_page_cost e random_page_cost

Quando se usa o Postgresql como banco de dados para BI  com a Plataforma Pentaho uma preocupação é otimizar o banco. Uma estratégia se você tem memória é reduzir os valores dos parâmetros do arquivo postgresql.conf Valores originais: #seq_page_cost = 1.0 # measured on an arbitrary scale #random_page_cost = 4.0 # same scale as above Estes dois parâmetros definem o custo para leituras sequencias e aleatórias, sendo que valores altos priorizam o uso do disco e valores baixos priorizam o uso da memória. Valores Ajustados para uso de memória, as tabelas são carregadas nas primeiras leituras: seq_page_cost = 0.1 # measured on an arbitrary scale random_page_cost = 0.1 # same scale as above Outra dica: Se existe memória disponível e está sendo usado linux com SO não aloque totalmente a memória para o postgresql, deixe um percentual para uso de cache do SO, isto fará que o linux carregue no cache do SO em memórias as tabelas utilizadas no momento.

Função Diferença em Anos para Postgresql

A seguinte função para o banco de dados Postgresql permite calcular a Diferença em Anos entre duas datas: -- Function: public."func_Data_Diferenca_Anos"(date) -- DROP FUNCTION public."func_Data_Diferenca_Anos"(date); CREATE OR REPLACE FUNCTION public."func_Data_Diferenca_Anos"("in_Data" date)   RETURNS integer AS $BODY$ DECLARE     iAnoAtual integer;    iAnoData integer;    iMesAtual integer;    iMesData integer;    iDiaAtual integer;    iDiaData integer;    iDifAnos integer;    iDifMeses integer;   BEGIN iAnoAtual=EXTRACT(year from CURRENT_DATE); iAnoData=EXTRACT(year from $1); iMesAtual=EXTRACT(month from CURRENT_DATE); iMesData=EXTRACT(month from $1); iDiaAtual=EXTRACT(day from CURRENT_DATE); iDiaData=EXTRACT(day from $1); iDifAnos=iAnoAtual-iAnoData; IF (iMesAtual < iMesData) THEN     iDifAnos=iDifAnos-1; END IF;     RETURN iDifAnos;   END;    $BODY$   LANGU