Sequências e colunas: novas sequências e colunas usam NOORDER por padrão (pendente)

Atenção

Essa mudança de comportamento está no pacote 2024_01.

Para saber o status atual do pacote, consulte Histórico do pacote.

Ao criar uma nova sequência ou uma nova coluna incrementada automaticamente, você pode especificar o parâmetro ORDER ou NOORDER para indicar se a sequência pode ou não gerar novos valores em ordem crescente.

  • ORDER especifica que os valores gerados para uma sequência ou coluna incrementada automaticamente estão em ordem crescente (ou, se o intervalor for um valor negativo, em ordem decrescente).

    Por exemplo, se uma sequência ou coluna incrementada automaticamente tiver START 1 INCREMENT 2, os valores gerados poderão ser 1, 3, 5, 7, 9 etc.

  • NOORDER especifica que não é garantido que os valores estejam em ordem crescente.

    Por exemplo, se uma sequência tiver START 1 INCREMENT 2, os valores gerados poderão ser 1, 3, 101, 5, 103 etc.

    NOORDER pode melhorar o desempenho quando várias operações de inserção precisam ser executadas simultaneamente (por exemplo, quando vários clientes estão executando várias instruções INSERT).

Se você não especificar ORDER ou NOORDER, um valor padrão será usado. Este valor padrão está mudando para melhorar o desempenho:

Antes da mudança:
  • Se você criar uma nova sequência sem especificar ORDER ou NOORDER, ORDER será usado por padrão.

  • Se você criar uma nova coluna de tabela e especificar AUTOINCREMENT sem especificar ORDER ou NOORDER, ORDER será usado por padrão.

Após a mudança:
  • Se você criar uma nova sequência sem especificar ORDER ou NOORDER, NOORDER será usado por padrão.

  • Se você criar uma nova coluna de tabela e especificar AUTOINCREMENT sem especificar ORDER ou NOORDER, NOORDER será usado por padrão.

Observe o seguinte:

  • As alterações nesses valores padrão não afetam as sequências existentes e as colunas incrementadas automaticamente existentes.

    As alterações afetam apenas novas sequências e colunas criadas quando a alteração de comportamento está habilitada.

  • As propriedades ORDER e NOORDER não afetam a exclusividade dos valores gerados para sequências e colunas incrementadas automaticamente.

Alteração do padrão de NOORDER para ORDER

Para definir o padrão novamente como ORDER, defina o parâmetro NOORDER_SEQUENCE_AS_DEFAULT como FALSE para a conta, usuário ou sessão.

Se você definir esse parâmetro, o valor definido substituirá o valor no pacote de mudança de comportamento 2024_01. Definir esse parâmetro como FALSE mantém ORDER como padrão, mesmo depois que o pacote de mudança de comportamento 2024_01 estiver habilitado geralmente.

Mudanças na saída da função GET_DDL

Além disso, a saída da função GET_DDL está mudando para colunas incrementadas automaticamente que têm START 1 INCREMENT 1 definido:

Antes da mudança:

A definição de coluna retornada por GET_DDL inclui apenas a palavra-chave AUTOINCREMENT (por exemplo, column name data type AUTOINCREMENT).

Após a mudança:

A definição de coluna retornada por GET_DDL inclui todas as propriedades, incluindo a propriedade START, a propriedade INCREMENT e a propriedade ORDER/NOORDER (por exemplo, column name data type AUTOINCREMENT START 1 INCREMENT 1 NOORDER).

Definição se uma sequência ou coluna tem a propriedade ORDER ou NOORDER

Finalmente, para determinar se uma sequência tem a propriedade ORDER ou NOORDER, você pode usar os seguintes comandos e exibições:

  • Para sequências, você pode usar qualquer um dos seguintes:

  • Para colunas incrementadas automaticamente, você pode verificar um dos seguintes itens:

  • Para sequências e colunas incrementadas automaticamente, você pode verificar a propriedade ORDER ou NOORDER na definição de sequência ou coluna retornada pela função GET_DDL.

Ref: 1483