Tempo aproximado para leitura: 00:02:04 min
Dúvida
O que são as colunas Shadow, iniciadas com ##, em ambiente do Datasul com Banco de Dados Oracle?
Ambiente
Framework - Framework (Linha Datasul) - Oracle - Todas as versões
Solução
As colunas Shadow, iniciadas com ## são colunas utilizadas para armazenar um upper dos dados das colunas físicas; isso por limitações impostas no Progress e Oracle em versões mais antigas.
A partir do Oracle 10 é possível armazenar no índice a função Upper. Dessa forma, quando utilizado em uma cláusula where onde o upper também é utilizado, o índice seja executado. Anterior a essa versão, não era possível armazenar no índice a função, e quando utilizado um upper em uma cláusula where, o índice não era utilizado.
Segue uma explicação mais detalhada, utilizando-se um exemplo:
Anteriormente, se a cláusula where contivesse:
where upper(campo1) = 'FILTRO'
E o índice contivesse o campo1, sem o upper que não era permitido, o índice não era utilizado.
Para contornar, utilizava-se o ##campo1 que tinha como conteúdo o upper do campo 1.
Na cláusula where:
where ##campo1 = 'FILTRO'
E no índice:
create index nome_indice on tabela (##campo1)
Com a possibilidade de armazenar o upper no índice, a partir da Versão 10 do Oracle.
Na cláusula where:
where upper(name) = 'FILTRO'
e no índice:
create index nome_indice on tabela (upper(campo1))
Considerando o exposto, de forma gradativa, as colunas Shadow estão sendo retiradas das definições, tendo como justificativas:
- redução espaço em disco;
- tabela menor;
- melhorar a gestão do banco;
- melhoria no controle/expedição do ambiente pela TOTVS
0 Comentários