Criar índice com base online

Discussão em 'Banco de Dados / Database' iniciado por af.dums, Julho 3, 2010.

  1. af.dums

    af.dums Membro Ativo

    Boa noite...

    Seguinte, tem como criar um índice em uma tabela com o banco em uso?

    Outra, a criação de um novo índice faz com que eu tenha que recompilar os programas?

    Obrigado.

    Abraços...
  2. elyson

    elyson Membro Participativo

    Para criar um indíce em uma determinada tabela, nenhum outro processo ou programa deve estar rodando e ter relação com essa tabela.
    A recompilação irá existir somente para aqueles programas que apontam para aquela tabela que você criou o novo indice e não todos os programas da sua aplicação.

    Elyson
  3. kirchner

    kirchner Membro Participativo Moderador

    Pelo que eu vejo, nenhuma tabela pode estar em uso para você conseguir criar um índice. O banco pode estar ativo, mas ninguém usando. Essencialmente, é uma operação offline.

    Você não "precisa" compilar nenhum programa, porque a criação de índice não altera o CRC da tabela. Isso já é assim desde a versão 9.
    Agora, talvez seja "desejável" compilar os programas, porque no Progress a seleção de índice é estática, no momento da compilação do programa. Se você cria o índice perfeito, mas continuar com o r-code antigo, este novo não será utilizado pelo programa. Mesmo assim, o banco deverá mantê-lo, então você tem custo sem benefício.

    A exceção são os acessos SQL. Neste caso a escolha do índice é no momento da execução da consulta e o índice novo pode ser utilizado.

Compartilhe esta Página