depois de criar o índice vc fez o analyze da tabela?

Tentou com um explain analyze?

[]'s
- Walter

On 10/2/06, Nelson Pereira Júnior < [EMAIL PROTECTED]> wrote:
Eu mandei fazer a pesquisa só pela RAZAO mas ele não usou o índice. Por que isso? Ele deveria usar!
 
Diminuí a qtd de registros para 1.000
 
O índice é:
CREATE INDEX "idx_cliente_razao" ON "public"."cliente" USING btree ("razao");
 
Quando uso o select:
 
SELECT id, nome, fantasia FROM cliente WHERE razao like 'AN%'
 
Ele me retorna os registros corretamente, mas não usou o ínidice. Veja o resultado:
Seq Scan on cliente  (cost=0.00..3.75 rows=1 width=136) (actual time=0.047..0.106 rows=3 loops=1)
Filter: ((razao)::text ~~ 'AN%'::text)
Alguém sabe o motivo? Ele deveria ter usado o índice!

 
----- Original Message -----
From: Walter Cruz
Sent: Monday, October 02, 2006 3:10 PM
Subject: Re: [PostgreSQL-Brasil] Esse SQL usa índice?

Para esse tanto de resgistros, eu tenho quase certeza de que o índice não é usado.

[]'s
- Walter

On 10/2/06, Deleon Galvin < [EMAIL PROTECTED]> wrote:
Olá amigo

Execute o Explain que ele vai te dizer se estará utilizando ou não.

EXPLAIN ANALYZE SELECT id, nome, fantasia FROM cliente WHERE razao like
'AN%' OR fantasia like 'AN%'

Ali ele irá lhe fornecer os custos da consulta e também se utilizou um
indice (index scan) e qual indice utilizou ou fez um full scan na tabela
(Seq Scan)

Espero ter ajudado.
Um abraço!



Em Seg, 2006-10-02 às 14:37 -0300, Nelson Pereira Júnior escreveu:
> Olá amigos,
>
> Tenho uma relação com nome CLIENTE. Nela existe um campo RAZAO e um campo
> FANTASIA. Criei 3 índices, um para o campo razão: idx_cliente_razao, outro
> para o fantasia: idx_cliente_fantasia, e outro com os dois:
> idx_cliente_razao_fantasia
>
> Imagine que tenho 1 milhão de registros.
>
> Quero procurar os cliente que comecem com "AN", tanto na razão social quanto
> no nome fantasia em uma única pesqusia.
>
> Queria saber se eu executasse essa pesquisa, ela usaria os dois índices para
> procurar, apenas 1, ou nenhum:
>
> SQL:
>
> SELECT id, nome, fantasia
> FROM cliente
> WHERE razao like 'AN%' OR fantasia like 'AN%'
>
> Queria saber qual dos índices ela usaria.
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a