Ribamar Sousa escreveu:
> 2008/7/2 junior Prado <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:
> 
>     Sendo mais detalhista em minha pergunta;
> 
> 
>     Caros amigos,
> 
>     Segundo no guia de usuário do postgresSQL 7.3.4 conforme abaixo:
> 
>     "
>     *Nota: * Havendo uma coluna do tipo smallint ou bigint com um
>     índice, podem ocorrer problemas ao tentar fazer o sistema utilizar
>     este índice. Por exemplo, uma cláusula do tipo
> 
>         ... WHERE coluna_smallint = 42
> 
>         não usará o índice, porque o sistema atribui o tipo integer à
>         constante 42, e o PostgreSQL atualmente não pode utilizar um
>         índice quando dois tipos de dado diferentes estão envolvidos. Um
>         modo de contornar este problema é colocar a constante entre
>         apóstrofos. Portanto,
> 
>         ... WHERE coluna_smallint = '42'
> 
>         atrasa a resolução do tipo pelo sistema, fazendo com que seja
>         atribuído o tipo correto para a constante.
> 
>     "
> 
>     Utilizando o postgres 8.3.3 a regra se aplica ao postgresSQL 7.3.4 ?
>     O tipo INT é o melhor tipo de dado para indice em questão de
>     performance?
> 
> 
> Bem Júnior, isso continua valendo para a versão 8. Não encontrei no 
> manual do 8.3.3, pois sinceramente não lembro em qual capítulo li isso 
> no 8.0. Em qual capítulo está no 7.3.4?

        Não continua valendo não, vide resposta minha anterior. Isto foi 
corrigido na versão 8.0. Hoje ele vai utilizar o índice normalmente. Ele 
vai fazer a conversão automaticamente.

logist=# explain select codproduto, produto from clientes_produtos where 
codproduto = 18;
                                             QUERY PLAN 

------------------------------------------------------------------------
  Index Scan using clientes_produtos_idx1 on clientes_produtos 
(cost=0.00..3.77 rows=1 width=220)
    Index Cond: (codproduto = 18)
(2 registros)

logist=# explain select codproduto, produto from clientes_produtos where 
codproduto = '18';
                                             QUERY PLAN 

------------------------------------------------------------------------
  Index Scan using clientes_produtos_idx1 on clientes_produtos 
(cost=0.00..3.77 rows=1 width=220)
    Index Cond: (codproduto = 18::smallint)
(2 registros)


--
Shander Lyrio
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a