Eu tenho um índice baseado em função que leva 25 minutos para ser criado em uma tabela de 94 milhões de linhas.
Quando solto o índice, leva 18 minutos.
Por que demora tanto tempo? Eu teria pensado que a queda teria sido quase imediata? Percebi que após ~ 10 minutos, o índice é removido de user_indexes, mas o script ainda é executado por mais ~ 8 minutos.
A tabela é particionada e esta é uma instalação do Oracle 10g RAC. Se mais alguma informação ajudar, posso adicioná-la conforme necessário.
Qualquer luz lançada sobre isso seria muito apreciada.
Um índice baseado em função adiciona uma coluna virtual à tabela (essa coluna é então indexada). A eliminação do índice remove a coluna virtual, o que leva a uma limpeza demorada (mesma quantidade de trabalho que a remoção de uma coluna não virtual).