>
> cd_cliente é uma chave primária? Qual é o esquema da tabela cliente?


Sim, cd_cliente é a chave primária. Essa é uma tabela que foi criada em
nosso sistema em 1998 e não está normalizada como deveria, mas acho que nem
vem ao caso. Essa tabela armazena clientes PF e PJ, por isso a PK não é o
CPF do cliente.

O cd_cliente é um char(11), composto pelo cd_filial_inclusao ( este é um
numérico com 4 dígitos ) e mais o sequencial do cadastro por
cd_filial_inclusao, com isso temos o cliente 00130000001, o 00130000002, o
06340000001, 06340000002, ... Quando o campo cd_filial_inclusao foi criado,
muito antigamente, foi para remover as pesquisas que utilizavam where
substring( cd_cliente, 0, 4 ) para ganhar performance.

Temos em nossa rede um Servidor Sybase Entrerprise, que tem a mesma tabela,
com os mesmos registros, e o plano de acesso utiliza o índice.

>
> Você tentou fazer um ANALYZE na tabela cliente antes da consulta.
> Teve outro resultado?
>
> Sim, fiz um ANALIZE antes e o resultado foi o mesmo. Já executei o
REINDEX, mas nada mudou.

Euler, você explicou muito bem o porque o banco pode optar em não utilizar
o índice, e tirou a minha dúvida.
Essa consulta não está em nenhum sistema, mas eventualmente eu executo,
então eu só queria mesmo entender o que estava ocorrendo.

> --
>    Euler Taveira                   Timbira - http://www.timbira.com.br/
>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a