Nivelamento de tabela

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • O nivelamento de tabela armazena uma hierarquia de tabelas relacionadas como uma tabela em um banco de dados relacional.

    Modelos de extensão

    O sistema oferece esses modelos de extensão para armazenar uma hierarquia de tabela em um banco de dados relacional.

    Tabela 1. Modelos de extensão disponíveis
    Modelo de extensão Planifica tabelas?
    Tabela por classe Não
    Tabela por hierarquia Sim
    Tabela por partição Sim

    Tabela por classe

    . Tabela por classe o modelo de extensão armazena cada tabela da hierarquia em sua própria tabela física no banco de dados relacional. Cada tabela física usa o prefixo de tabela da tabela de origem e armazena uma classe diferente de registros. Um exemplo do modelo de extensão Tabela por classe é a tabela Ativo [alm_asset] e suas tabelas secundárias: Hardware [alm_hardware], Consumível [alm_consumable], Instalação [alm_facility] e Licença de software [alm_license]. A tabela primária da hierarquia, Ativo, armazena uma cópia de cada registro em suas tabelas descendentes.

    Para encontrar registros no modelo de extensão Tabela por classe, o sistema consulta registros de várias tabelas e une os resultados. Por exemplo, ao pesquisar hardware em uma instalação relacionada, o sistema deve unir resultados das tabelas Hardware, Instalação e Ativo.

    As junções de tabela causam um gargalo de desempenho em bancos de dados relacionais. Quanto mais classes uma consulta incluir, pior será o desempenho da consulta. Portanto, qualquer consulta de registros do topo da hierarquia de tabelas tem o pior desempenho porque requer a junção de todas as tabelas descendentes.

    O sistema usa o modelo de extensão Tabela por classe por padrão ao criar tabelas. A maioria das tabelas do sistema também usa o modelo de extensão Tabela por classe, pois não há benefício de desempenho ao nivelá-las.

    Tabela por hierarquia

    . Tabela por hierarquia o modelo de extensão armazena uma hierarquia de tabela inteira em uma única tabela física plana no banco de dados relacional. A tabela física é nomeada após a tabela primária da hierarquia, como Tarefa. A tabela física contém todos os registros da hierarquia da tabela e atribui um valor de coluna de nome de classe a cada tabela descendente da hierarquia. O sistema usa o nome da tabela de origem como o valor do nome da classe. Por exemplo, os registros de tarefa podem ter nomes de classe, como Mudança, Incidente ou Problema.

    Para encontrar registros em uma hierarquia de tabela, o sistema consulta a tabela física e usa a coluna de nome da classe para restringir os resultados. Como essas consultas não exigem a junção de resultados de várias tabelas, o sistema fornece melhor desempenho de pesquisa.

    O sistema usa o modelo de extensão Tabela por hierarquia para a hierarquia da tabela de tarefas em bancos de dados MySQL. Outras tabelas usam o modelo de extensão Tabela por classe porque não há benefício de desempenho para nivelá-las. Para usar Tabela por hierarquia em um banco de dados Oracle, entre em contato com o Suporte técnico.

    Tabela por partição

    . Tabela por partição o modelo de extensão armazena uma hierarquia de tabela inteira em uma única tabela lógica plana no banco de dados relacional. Cada tabela lógica pode ter várias tabelas de armazenamento físico chamadas partições suporte a ti. Cada partição otimiza os recursos de banco de dados disponíveis para uma tabela física, como contagem de colunas, contagem de índice e tamanho da linha. O sistema adiciona uma partição sempre que a tabela lógica precisar de recursos de banco de dados relacional adicionais.

    Cada tabela lógica é nomeada após a tabela primária da hierarquia, e cada partição física de suporte consiste no nome lógico mais um nome de partição. Por exemplo, a tabela Item de configuração base [cmdb] começa como uma tabela lógica sem partições. Suponha que seus itens de configuração de hardware consumam recursos de banco de dados suficientes para que o sistema crie uma partição chamada par1 para armazená-los. Mais tarde, os itens de configuração do computador podem consumir recursos de banco de dados suficientes para garantir que o sistema crie uma segunda partição chamada par2 para armazenar esses registros.

    Em cada tabela lógica, o sistema atribui um valor de coluna de nome de classe a cada tabela descendente da hierarquia. Por exemplo, na tabela lógica Item de configuração básica, há registros com nomes de classe para aplicação, computador e roteador IP. O sistema também atribui um valor de caminho de classe de dois dígitos a cada tabela descendente da hierarquia. O caminho da classe é baseado no local da tabela na hierarquia. Por exemplo, a classe primária Hardware pode ter um caminho de classe como /!!/!D E o computador de classe secundário pode ter um caminho de classe como /!!/!D/!! .

    Para encontrar registros no modelo de extensão Tabela por partição, o sistema consulta a tabela lógica e suas partições e usa a coluna de caminho de classe para restringir os resultados. Como essas consultas não exigem a junção de resultados de várias tabelas, o sistema fornece melhor desempenho de pesquisa. Além disso, o caminho de classe reduz o número total de registros a serem pesquisados, o que melhora ainda mais o desempenho da pesquisa.

    O sistema usa o modelo de extensão Tabela por partição para a hierarquia de tabela Item de configuração base [cmdb] nos bancos de dados MySQL. Para usar Tabela por partição em um banco de dados Oracle, entre em contato com o Suporte técnico.