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