Coleta de estatísticas na Data Virtualization
Para otimizar o desempenho da consulta, é possível coletar estatísticas sobre os dados que estão sendo consultados.
As decisões pelo otimizador baseado em custo são cruciais para o desempenho da consulta. O otimizador toma suas decisões usando informações estatísticas sobre os dados que estão sendo consultados. Estatísticas precisas e atualizadas garantem o desempenho ideal da consulta. Colete estatísticas sempre que as condições a seguir se aplicarem.
É possível ler mais sobre otimizadores e desempenho de consulta em Perfis e diretrizes de Otimização
- Uma nova tabela é criada e preenchida com dados.
- Um dado da tabela existente sofre mudanças significativas, tais como as condições a seguir:
- Novos dados são adicionados.
- Dados antigos são removidos.
- Os dados existentes são atualizados.
Data Virtualization coleta estatísticas para os seguintes itens, de modo que o otimizador tenha informações suficientes para criar planos de execução eficientes:
- Qualquer tabela que é referenciada em uma consulta.
- Qualquer tabela referenciada em uma visualização. Ao criar uma visualização virtual, certifique-se de coletar estatísticas para todas as tabelas referenciadas na visualização. As estatísticas não são coletadas em visualizações.
- Todas as colunas que são referenciadas em predicados (incluindo predicados de junção) e funções de agregação que são referenciadas em consultas.
Você não precisa coletar estatísticas para colunas que aparecem apenas na primeira lista SELECT de uma consulta.
- Cardinalidade de tabela (CARD)
- O número de linhas na tabela.
- Cardinalidade de coluna (COLCARD)
- O número de valores distintos na coluna.
- Chave alta (HIGH2KEY)
- O valor de dados mais alto ou o segundo mais alto para a coluna, dependendo da origem de dados remota da tabela virtualizada e do tipo de coleção usado.
- Chave baixa (LOW2KEY)
- O valor de dados mais baixo ou o segundo mais baixo para a coluna, dependendo da origem de dados remota da tabela virtualizada e do tipo de coleção usado. Para muitas fontes de dados, Data Virtualization coleta o valor de chave mais baixo, que pode ser um valor em branco. Um espaço em branco não indica que as estatísticas não foram coletadas
- Número de valores nulos (NUMNULLS)
- O número de valores nulos na coluna. Esse número é a única estatística coletada para colunas do tipo LOB.
Tipos de coleta de estatísticas
- remote-catalog
- Esse tipo de coleta de estatísticas é suportado apenas para tabelas virtualizadas em origens de dados remotas que suportam um método local de coleta de estatísticas. As estatísticas armazenadas nas tabelas do catálogo na fonte de dados remota são recuperadas e armazenadas no catálogo de estatísticas Data Virtualization.É fundamental assegurar que estatísticas precisas estejam disponíveis na origem de dados remota. O tipo de coleta de estatísticas remote-catalog não é suportado para tabelas agrupadas.
- remote-query
- Esse tipo de coleta de estatísticas usa consultas SQL na tabela virtualizada para calcular as estatísticas.Esse tipo poderá fazer uso intensivo de recursos e demorar muito tempo para ser concluído se a tabela virtualizada tiver muitas linhas ou se forem reunidas estatísticas para muitas colunas. Para melhorar o desempenho e conservar recursos, você pode coletar estatísticas com amostragem de dados especificando a opção TABLESAMPLE no procedimento armazenado COLLECT_STATISTICS na Data Virtualization ou usar o comando " ANALYZE para fontes de dados no armazenamento de objetos na nuvem.
Melhores práticas
Para fontes de dados remotas que suportam ferramentas de coleta de estatísticas locais, como " IBM Db2 e " Oracle, a prática recomendada para a coleta de estatísticas na Data Virtualization é garantir que as estatísticas locais na fonte de dados remota sejam precisas e atualizadas, especialmente as estatísticas básicas de coluna para as colunas-chave usadas em predicados de consulta. É uma boa ideia criar um trabalho de coleta de estatísticas no cliente Web do Data Virtualization para essa finalidade.