Boa noite a todos,

Segue os testes, quem puder refazer o testes e postar os resultador seria legal também. Ressalto, que isto é pra mostrar que o fillfactor altera e muito na velocidade dos índices (até pra consulta) (o assunto é consulta lenta) Observem os resultados, vejam que melhorou um pouco o retorno das consultas (imagina em tabelas grandes)

Testando FillFactor

A) table espace

1) Criei table space

CREATE TABLESPACE tbs_estrutura
  OWNER role_user
  LOCATION '/tablespace/conteudoestutura';

CREATE TABLESPACE tbs_estruturas_id
  OWNER role_user
  LOCATION '/tablespace/estruturas_id';


B) Estruturas e Dados

1) Criei uma tabela muito simples

CREATE TABLE teste
(
  id integer NOT NULL,
  nome text,
  nota integer NOT NULL
)
WITH (
  OIDS=FALSE
)
TABLESPACE tbs_estrutura;
obs: Query returned successfully with no result in 292 ms.

2) Coloquei a primary key com fillfactor padrão (90)

ALTER TABLE teste
    ADD CONSTRAINT  pk_teste_id PRIMARY KEY (id)
    WITH (FILLFACTOR=90)
    USING INDEX TABLESPACE tbs_estruturas_id;
obs: Query returned successfully with no result in 242 ms.


3) Adicionei algumas alguns registros sequencias

INSERT INTO teste (id, nome, nota) VALUES (generate_series(1,10000), 'nome ' || generate_series(1,10000), round(CAST (random()*100 AS NUMERIC),0));
Query returned successfully: 10000 rows affected, 67200 ms execution time.

4) Select
select id, nome, nota from teste where id=5000;
Total query runtime: 32 ms.

5) Alterando o fillfactor (10) (Repetindo passoas 1 - 3 )
Obs:
insert: Query returned successfully: 10000 rows affected, 3653 ms execution time.
select: Total query runtime: 23 ms.

6) refazendo todos os passos, porem colocando os dados primeiros (insert -> add constraint) (fillfactor 10) insert: Query returned successfully: 10000 rows affected, 192 ms execution time.
add contratint:  Query returned successfully with no result in 241 ms.
select: Total query runtime: 35 ms.
tamanho dos indices: 984 KB

7) refazendo todos os passos, porem colocando os dados primeiros (insert -> add constraint) (fillfactor 100) insert: Query returned successfully: 10000 rows affected, 221 ms execution time.
add contratint:  Query returned successfully with no result in 221 ms.
select: Total query runtime: 55 ms.
tamanho dos indices: 792 KB

Para verificar o tamanho da table space
-SELECT pg_size_pretty(pg_tablespace_size('tbs_estruturas_id'));

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a