é que por exemplo, se você executar isso no oracle:
select * from foo where upper(nome) = 'EULER';
você estara quebrando o indice do campo nome..

isso que eu me refiro, se eu fizer a mesma coisa no postgresql, irá quebrar
o indice da coluna nome ou não?????



Em 28/07/07, Euler Taveira de Oliveira <[EMAIL PROTECTED]> escreveu:
>
> Pedro B. Alves wrote:
>
> > Pessoal, gostaria de saber se o uso de funçõs como COALESCE, SUM, MAX,
> > MIN, etc.. na clausula where quebra o uso dos indices.
> > e qual o problema de usar esses tipos de fuções com relação a performace
> > de uma query????
> >
> Acho que funções de agregações tais com SUM, MAX, AVG, MIN não seriam
> utilizadas no WHERE certo? Funções de agregação não podem ser utilizadas
> no WHERE. No GROUP BY ou HAVING sim.
>
> Você pode perfeitamente criar índices para funções como:
>
> regression=# create table foo (id int, nome varchar(10));
> CREATE TABLE
> regression=# create index nome_idx on foo(upper(nome));
> CREATE INDEX
> regression=# set enable_seqscan to off;
> SET
> regression=# explain select * from foo where upper(nome) = 'EULER';
>                              QUERY PLAN
> -----------------------------------------------------------------------
> Bitmap Heap Scan on foo  (cost=4.31..14.49 rows=8 width=18)
>   Recheck Cond: (upper((nome)::text) = 'EULER'::text)
>   ->  Bitmap Index Scan on nome_idx  (cost=0.00..4.31 rows=8 width=0)
>         Index Cond: (upper((nome)::text) = 'EULER'::text)
> (4 registros)
>
> regression=#
>
> Quanto ao COALESCE, não vejo como utilizá-lo em um índice. Mas você
> poderia indexar a coluna que está presente nele.
>
>
> --
> 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
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a