Olá,

Em 28 de julho de 2010 15:33, Monica Ferrari Villarino
<moni...@stf.jus.br>escreveu:

>  Olá!
>
>
>
> Será que é possível otimizar a seguinte consulta, executada de hora em hora
> no banco:
>
>
>
> select count(*) from history;
>
>
>
> Essa consulta costuma ter uma duração que varia de  32000.000 ms a
> 62262.751 ms  conforme o horário em que é executada.
>

Uma forma de você descobrir é:

SELECT reltuples FROM pg_class WHERE relname='history';

Para o resultado preciso o ideal é executar um ANALYZE history antes.

>
>
> A tabela history possui em média *87 milhões* de registros.
>
> É uma tabela que sofre muito insert/update/delete.
>
> Faço analyze e reindexação semanalmente.
>
>
>
> Estou utilizando postgresql 8.4.4
>
>
>
> A tabela tem a seguinte estrutura e índice:
>
>
>
> CREATE TABLE history
>
> (
>
>   itemid bigint NOT NULL DEFAULT (0)::bigint,
>
>   clock integer NOT NULL DEFAULT 0,
>
>   "value" numeric(16,4) NOT NULL DEFAULT 0.0000
>
> )
>
> WITH (OIDS=TRUE);
>
>
>
> -- Index: history_1
>
>
>
> CREATE INDEX history_1  ON.history
>
>   USING btree  (itemid, clock);
>
>
>
>
>
> *Mônica***
>
>
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

Atenciosamente
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a