é 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