[pgbr-geral] RES: Indice composto

2010-11-19 Por tôpico Beto Lima
Gente. Valeu pelas dicas mesmo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Indice composto

2010-11-19 Por tôpico Beto Lima
Mas assim: eu também vou buscar pelos campos descricao, data_inicio_agenda,
data_fim_agenda além do titulo.
Saco fora os indices?

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


Re: [pgbr-geral] RES: Indice composto

2010-11-17 Por tôpico Fábio Telles Rodriguez
Veja bem índices compostos tem um custo alto e precisam serem criados com
parcimônia e precisão. Por exemplo, a ordem dos campos interfere bruscamente
no desempenho do índice. Você só junta vários campos num mesmo índice se e
somente se vai fazer consultas com frequência para o mesmo grupo de campos.
Ainda assim vale a pena verificar se:


   - A tabela deve ter pelo menos alguns milhares de registros para o índice
   fazer sentido.
   - Cada campo deve ter alta seletividade, ou seja a proporção entre o
   número de registros na tabela e o número de valores distíntos no campo deve
   ser bem baixo (o ideal é N = n ).


Claro, se você tiver uma restrição de unicidade para vários campos, isto não
se aplica. E quando você cria uma restrição de unicidade o índice será
criado automaticamente. Mas o problema da ordem dos campos permanece.

[]s
Fábio Telles

2010/11/16 Marcal Hokama mhok...@hotmail.com


 ___
  From: betol...@gmail.com
  Date: Tue, 16 Nov 2010 11:04:37 -0300
  To: pgbr-geral@listas.postgresql.org.br
  Subject: [pgbr-geral] RES: Indice composto
 
  Mas assim: eu também vou buscar pelos campos descricao,
  data_inicio_agenda, data_fim_agenda além do titulo.
  Saco fora os indices?
 
  valeu

 Fiquei com uma dúvida, a sua busca vai ter na cláusula WHERE:

 1) titulo E descricao E data_inicio_agenda E data_fim_agenda

 ou

 2) combinações das colunas titulo, descricao, data_inicio_agenda,
 data_fim_agenda (às vezes algumas delas não aparecem).

 ???

 Marçal de Lima Hokama
 
 e-mail: mhok...@hotmail.com
 http://twitter.com/mhokama

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




-- 
blog: http://www.midstorm.org/~telles/
e-mail / jabber: fabio.tel...@gmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Euler Taveira de Oliveira
Moisés Caribé Ribeiro escreveu:
 - campos nulos não utilizam índices
 
Ugh? É claro que posso ter consultas WHERE foo IS NULL que utilizam um índice.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Marcal Hokama

___
 From: betol...@gmail.com
 Date: Tue, 16 Nov 2010 11:04:37 -0300
 To: pgbr-geral@listas.postgresql.org.br
 Subject: [pgbr-geral] RES: Indice composto

 Mas assim: eu também vou buscar pelos campos descricao,
 data_inicio_agenda, data_fim_agenda além do titulo.
 Saco fora os indices?

 valeu

Fiquei com uma dúvida, a sua busca vai ter na cláusula WHERE:

1) titulo E descricao E data_inicio_agenda E data_fim_agenda

ou

2) combinações das colunas titulo, descricao, data_inicio_agenda, 
data_fim_agenda (às vezes algumas delas não aparecem).

???

Marçal de Lima Hokama

e-mail: mhok...@hotmail.com
http://twitter.com/mhokama
  
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Beto Lima
Na clausula where vai ser um ou outro.
ex: where titulo ilike '%valor%'

ou data_inicio_agenda ilike '%valor%'

Não vou unir os valores pra buscar depois, é um ou outro.
A busca funciona conforme digita no campo, no evento keyup com ajax.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Fábio Telles Rodriguez
Então crie índices individuais para cada campo. Depois verifique se os seus
índices estão sendo realmente utilizados.

2010/11/16 Beto Lima betol...@gmail.com

 Na clausula where vai ser um ou outro.
 ex: where titulo ilike '%valor%'

 ou data_inicio_agenda ilike '%valor%'

 Não vou unir os valores pra buscar depois, é um ou outro.
 A busca funciona conforme digita no campo, no evento keyup com ajax.

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




-- 
blog: http://www.midstorm.org/~telles/
e-mail / jabber: fabio.tel...@gmail.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Beto Lima
Então crie índices individuais para cada campo. Depois verifique se os seus
índices estão sendo realmente utilizados.

Ok obrigado, mas como posso verificar depois isso?
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Marcal Hokama


 From: betol...@gmail.com
 Date: Tue, 16 Nov 2010 18:28:58 -0300
 To: pgbr-geral@listas.postgresql.org.br
 Subject: [pgbr-geral] RES: Indice composto

 Então crie índices individuais para cada campo. Depois verifique se os seus
 índices estão sendo realmente utilizados.

 Ok obrigado, mas como posso verificar depois isso?

Olá Beto,
 
Analisando o plano de execução de cada consulta com o comando EXPLAIN
 
Mais detalhes sobre o comando em 
http://www.postgresql.org/docs/9.0/interactive/using-explain.html
 
 
Marçal de Lima Hokama
-
e-mail:mhok...@hotmail.com
http://twitter.com/mhokama
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] RES: Indice composto

2010-11-16 Por tôpico Marcal Hokama

___
 From: betol...@gmail.com
 Date: Tue, 16 Nov 2010 14:10:24 -0300
 To: pgbr-geral@listas.postgresql.org.br
 Subject: [pgbr-geral] RES: Indice composto

 Na clausula where vai ser um ou outro.
 ex: where titulo ilike '%valor%'

 ou data_inicio_agenda ilike '%valor%'

 Não vou unir os valores pra buscar depois, é um ou outro.
 A busca funciona conforme digita no campo, no evento keyup com ajax.

Olá Beto,
 
Agora que vi a tua consulta, vai ter um problema: o ilike com o texto de busca 
começando com '%'. Assim não vai usar índices.
 
Mais em http://www.postgresql.org/docs/9.0/interactive/indexes-types.html
 
Marçal de Lima Hokama
-
e-mail: mhok...@hotmail.com
http://twitter.com/mhokama
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Indice composto

2010-11-15 Por tôpico Moisés Caribé Ribeiro
Meu caro;

Utilização de índices depende de uma série de fatores:

- Tabelas pequenas não utilizam índices

- Saiba dosar a criação deles nas tabelas sabendo que muitos índices numa
mesma tabela degradam operações de insert, update e delete quando intensas

- Crie índices por campos que são utilizados em cláusula where ou join

- campos nulos não utilizam índices

 

Esta situação que você apresenta eu acho preciptada. Isso é aplicado no
desespero quando nada mais resolve. A princípio, preocupe-se apenas em criar
o índice em cima dos filtros utilizados. Lembre-se também que você já tem um
índice único pelo título, ou seja, se o seu filtro for só pelo título, não
precisa criar outro índice.

Abraço

 

De: pgbr-geral-boun...@listas.postgresql.org.br
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Beto Lima
Enviada em: segunda-feira, 15 de novembro de 2010 17:45
Para: pgbr-geral@listas.postgresql.org.br
Assunto: [pgbr-geral] Indice composto

 

Pessoal me digam uma coisa:
Se eu usar indices compostos, posso ter problemas de performance na minha
base?
Ex: tenho uma tabela com os seguintes campos

CREATE TABLE agendas
(
  id_agenda serial NOT NULL,
  titulo character varying(200) NOT NULL,
  descricao text,
  data_inicio_agenda timestamp without time zone NOT NULL,
  data_fim_agenda timestamp without time zone NOT NULL,
  CONSTRAINT agendas_pk PRIMARY KEY (id_agenda),
  CONSTRAINT agendas_titulo_key UNIQUE (titulo),
  CONSTRAINT agendas_check CHECK (data_fim_agenda  data_inicio_agenda)
)

E meu indice:

CREATE INDEX indice_busca
  ON agendas
  USING btree
  (titulo, descricao, data_inicio_agenda, data_fim_agenda);

Tenho um form onde tenho estes campos do indice para fazer busca na tabela.
Ta tudo na boa? ou é campo demais e posso perder performance!!!
valeu

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