Pessoal, Tenho esses 2 índices numa tabela
CREATE INDEX idx_tb_processo_nr_processo ON core.tb_processo USING btree (nr_processo COLLATE pg_catalog."default"); CREATE INDEX idx_tb_processo_nr_processo_ubd ON core.tb_processo USING btree (lower(to_ascii(nr_processo::text)) COLLATE pg_catalog."default"); explain analyze select * from tb_processo WHERE nr_processo LIKE '0001949-27.2015.8.17.8201%' Index Scan using idx_tb_processo_nr_processo on tb_processo (cost=0.56..8.58 rows=459 width=240) (actual time=0.047..0.083 rows=1 loops=1) Index Cond: (((nr_processo)::text >= '0001949-27.2015.8.17.8201'::text) AND ((nr_processo)::text < '0001949-27.2015.8.17.8202'::text)) Filter: ((nr_processo)::text ~~ '0001949-27.2015.8.17.8201%'::text) Total runtime: 0.105 ms explain analyze select * from tb_processo WHERE lower ( to_ascii ( nr_processo ) ) LIKE '0001949-27.2015.8.17.8201%' Seq Scan on tb_processo (cost=0.00..188212.14 rows=26803 width=240) (actual time=411.008..562.486 rows=1 loops=1) Filter: (lower(to_ascii((nr_processo)::text)) ~~ '0001949-27.2015.8.17.8201%'::text) Rows Removed by Filter: 352791 Total runtime: 562.504 ms Por que a 1a consulta usa o índice idx_tb_processo_nr_processo e a 2a não usa o índice idx_tb_processo_nr_processo_ubd Atenciosamente, Luiz Carlos
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
