As estatísticas de tabela não são coletadas na Data Virtualization

Ao criar tabelas virtuais, algumas das estatísticas de tabela não são coletadas corretamente.

Sintomas

As estatísticas da tabela às vezes não são coletadas durante a criação de tabelas virtuais. As estatísticas de tabela ausentes podem ter um impacto sério no desempenho da consulta.

Resolvendo o problema

Para resolver esse problema, execute estas etapas:
  1. Determine se as estatísticas da tabela estão ausentes, executando o seguinte comando.
    select cast(TABNAME as varchar(25)),  TYPE, COLCOUNT,  STATS_TIME from SYSCAT.TABLES 
               where TABSCHEMA='<schema>'   
                       and CARD = -1;

    Substitua <schema> pelo nome do esquema da tabela virtual. O comando lista todos os objetos no esquema que têm um CARD de -1, que é uma indicação de que as estatísticas não foram coletadas.

  2. Para cada tabela com cardinalidade de -1, execute o comando a seguir, substituindo <schema> e <table_name> pelo nome do objeto virtualizado.
    call SYSPROC.NNSTAT(NULL, 
              '<schema>',
              '<table_name>',
              '<list_of_columns_commonly_used_in_predicates>',
              '',
              2,
              '/tmp/<table_name>.log',
              ?,
              1);

    Essa chamada coleta estatísticas de nível de tabela e estatísticas de nível de coluna para as colunas especificadas em <list_of_columns_commonly_used_in_predicates>. Se a tabela tiver poucas colunas, será possível coletar estatísticas para todas as colunas na tabela passando NULL para o argumento da lista de colunas. A chamada utiliza o método de coleta de estatísticas baseado em dados, que pode ser custoso de ser executado. É possível coletar estatísticas fora do horário de pico. Para obter mais informações, consulte o SYSPROC do SYSPROC.NNSTAT procedimento armazenado.

  3. Repita a Etapa 1 para assegurar que todas as estatísticas da tabela sejam coletadas.

Para obter mais informações, consulte Melhorando o desempenho da consulta na Data Virtualization.