Pular para o conteúdo

Fóruns Banco de dados Oracle Criar um índice único em uma tabela particionada. Criar um índice único em uma tabela particionada.

#98100
braza
Participante

    [quote=”braza”:31fzemah]Boa tarde,

    Acabei de particionar uma tabela com cerca de 60.000.000 de registros.

    Essa tabela, antes, tinha um índice único cujo o campo desse índice não é subconjunto da chave primária.

    Após particionar a tabela e tentar recriar esse índice. Recebi o seguinte erro Oracle: ora-14039.

    O erro informa que eu não posso criar um índice único na tabela particionada se ele não for um subconjunto da PK. Mas eu realmente preciso desse índice único e também do particionamento.

    Existe algo que eu possa fazer para criar esse índice único na tabela particionada. Sendo ele não um subconjunto da PK ????

    Obrigado.[/quote]

    Resolvi esse problema criando esse mesmo índice com particionamento “global”, e não local, como vinha tentando fazer.

    A criação do índice único com particionamento global requer que os seus campos façam parte da chave da partição.

    A sintaxe é a seguinte:

    create unique index IX_FTCD_03 on FATURA_CADASTRO (FTCD_NOSSO_NUMERO)
    global partition by hash (FTCD_NOSSO_NUMERO)
    partitions 10
    store in
    (
    FATURA_CADASTRO_IDX_P001,FATURA_CADASTRO_IDX_P002,FATURA_CADASTRO_IDX_P003,FATURA_CADASTRO_IDX_P004,FATURA_CADASTRO_IDX_P005,FATURA_CADASTRO_IDX_P006,
    FATURA_CADASTRO_IDX_P007,FATURA_CADASTRO_IDX_P008,FATURA_CADASTRO_IDX_P009,FATURA_CADASTRO_IDX_P010
    ) nologging;

    E assim, consegui criar o índice.

    De qualquer forma, obrigado pela atenção.