Ir para conteúdo
Fórum Script Brasil
  • 0

Índice em Funções


Gusmon

Pergunta

Boa tarde a todos,

Eu trabalho com Oracle e estou fazendo trabalhos para faculdade com PostgreSQL, sempre achei o Oracle um bom banco, mas, depois que comecei a trabalhar com PostgreSQL achei melhor que o Oracle em tudo(traduzindo dá uma surra no Oracle), só que uma coisa não consegui rodar como esperado. Eu criei uma function para remover acentos e transformar letras em números e para ficar rápido criei uma Index para mesma, no PostgreSQL ele não está utilizando Index Scan nas tabelas, eu tenho de setar algo extra?

No Oracle eu fiz assim:

Create index nome_do_index

on nome_tabela(funcao(campo));

Eu criei a mesma index no PostgreSQL mas ele não faz index scan na comparação: select * from nome_tabela where funcao(campo) ~ '10040(.+)|206?2500'

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Quando você usa uma expressão regular não há como procurar no índice. É o mesmo caso do LIKE '%texto%'. Como o texto pode estar em qualquer posição o índice é inútil. Ele poderia usar o índice se fosse LIKE 'text%' porque aí ele saberia que o texto procurado está no começo da string. No seu caso você pode tentar ~ '^100040 etc' para ver se ele usa o índice. Não sei.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...