A criação do índice é importante, mas no seu caso não sei como os
dados nessa coluna
são persistidos todos em maiúsculo (upper) ou em minúsculo (lower) ou
se possui variações entre
minúsculos ou maiúsculo  mas se acaso não possui variações sugiro que
utilizo *like* e não
*ilike* - já que o ilike é para buscas indiferente da diferenciação
maiúsculo e minúsculo, ele NÃO possui
 boa performace *Seq Scan* na tabela.

Outra sugestão, é que em sua aplicação caso for todos os dados
contidos nesta coluna forem maiúsculo somente adicionar um
UPPER('uc%') na sua condição. Mesma regra vale para o LOWER()
caso for minúsculo os dados armazenados nessa coluna. Sendo assim com
a utilização do UPPER ou LOWER  e também a utilização do LIKE no lugar
de ILIKE, sua busca sim utilizará o indíce o qual você mesmo sugeriu.

Faça o teste na utilizando EXPLAIN.

Atenciosamente
Rodrigo


Em 27 de abril de 2011 17:28, Prof. Cleverson
<[email protected]> escreveu:
> Desculpe minha ignorância sobre os índices mas, tenho algumas dúvidas:
>
> a) Quando crio chaves primárias e estrangeiras não preciso criar índices
> prá elas. Certo?
> b) Utilizo muito a busca pelo nome do cliente desta forma "where nome
> ilike 'juc%'". Para melhorar o desempenho, um índice neste caso ajudaria?
> c) No caso acima o índice seria criado assim "CREATE INDEX cliente_nome
> ON cliente (nome)" ?
> d) Quando uso expressões nos índices?
>
> Desde já agradeço
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente
Rodrigo Della Justina
[email protected]
[email protected]
Telp: 55-46-8801-6165
IBM DB2 Certified Database Academic
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a