A view HOLOGRES_STATISTIC.HG_STATS_MISSING lista as tabelas do banco de dados atual sem estatísticas.
Use esta view para:
Visualizar tabelas sem estatísticas. A ausência de estatísticas pode levar o otimizador a gerar planos de execução ineficientes, como ordens de junção incorretas que provocam shuffles de tabelas grandes, consultas lentas ou erros de falta de memória (OOM).
Identificar as tabelas específicas associadas à métrica Stats Miss Table Num by DB no monitoramento do Hologres.
Executar manualmente o comando ANALYZE ou outras operações de governança seletivamente nas tabelas sem estatísticas.
Limites
A instância do Hologres deve executar a versão V2.2.15 ou superior.
A consulta retorna apenas tabelas em schemas nos quais o usuário tem permissão SCHEMA USAGE ou superior.
O sistema não exibe tipos de tabela diferentes de tabelas internas do Hologres, tabelas particionadas, tabelas externas e materialized views (também excluídos da métrica).
Campos
A tabela a seguir descreve os campos da view HOLOGRES_STATISTIC.HG_STATS_MISSING.
Campo | Tipo de dado | Descrição |
schemaname | TEXT | Nome do schema. |
tablename | TEXT | Nome da tabela. |
nattrs | INTEGER | Número de colunas. |
tablekind | TEXT | Tipo da tabela (por exemplo, table ou foreign_table). |
fdwname | TEXT | Nome do Foreign Data Wrapper (FDW). Preenchido apenas para tabelas externas. |
autovacuum_enabled | TEXT | Indica se o Auto Analyze está ativado para a tabela. Nota Disponível apenas na versão V3.1. |
reason | TEXT | Motivo da ausência de estatísticas. Use este campo para determinar a próxima ação. Nota Disponível apenas na versão V3.1. |
reason: classificação dos motivos de ausência
|
Motivo |
Categoria |
Descrição |
Ação recomendada |
|
|
Estatísticas de coluna ausentes |
O sistema não coletou estatísticas (como MCV e histograma) para a coluna especificada. |
Execute a instrução |
|
|
Estatísticas de coluna ausentes |
Falta o contador HyperLogLog (HLL) na coluna especificada. O HLL estima o número de valores distintos (NDV) das tabelas filhas de partição e é fundamental para mesclar estatísticas em tabelas particionadas. |
Execute a instrução |
|
|
Impossibilidade de mesclar estatísticas de tabela particionada lógica |
A tabela particionada lógica tem partições filhas cujas estatísticas não podem ser mescladas devido a dados ausentes ou incompatíveis. |
Execute a instrução |
|
|
Coleta automática desativada explicitamente |
O AUTO ANALYZE foi desativado manualmente para a tabela, impedindo a coleta automática de estatísticas. |
Para reativar a manutenção automática de estatísticas, ative o AUTO ANALYZE no nível da tabela: |
|
|
Incompatibilidade de tipo |
O tipo de dado das estatísticas MCV (Most Common Values) ou de histograma existentes para a coluna especificada não corresponde ao tipo de dado atual. Isso geralmente ocorre após a modificação do tipo da coluna. |
Execute novamente a instrução |
|
|
Exceção no nível da tabela |
A tabela foi excluída ou tornou-se inacessível durante a verificação de estatísticas. |
Nenhuma ação necessária. A tabela não existe mais e as consultas subsequentes a ignorarão automaticamente. |
Exemplos
Na lista de instâncias, clique no ID da instância para acessar a página de detalhes. Clique em Group Name, selecione Binlog and Analyze e visualize Stats Miss Table Num by DB.
Use um dos bancos de dados como exemplo para visualizar as tabelas sem estatísticas no banco de dados atual.
SELECT * FROM hologres_statistic.hg_stats_missing;
Saída de exemplo:
schemaname | tablename | nattrs | tablekind | fdwname | autovacuum_enabled | reason
------------------------------------+----------------------------------+--------+---------------+----------+--------------------+------------------------------
hologres_foreign_dataset_tpch_100g | odps_customer_100g | 8 | foreign table | odps_fdw | t | column "c_custkey" missing
hologres_foreign_dataset_tpch_100g | odps_nation_100g | 4 | foreign table | odps_fdw | t | column "n_nationkey" missing
hologres_foreign_dataset_tpch_100g | odps_orders_100g | 9 | foreign table | odps_fdw | t | column "o_orderkey" missing
hologres_foreign_dataset_tpch_100g | odps_part_100g | 9 | foreign table | odps_fdw | t | column "p_partkey" missing
hologres_foreign_dataset_tpch_100g | odps_lineitem_100g | 16 | foreign table | odps_fdw | t | column "l_orderkey" missing
public | spatialxxxxx | 5 | table | | t |
public | smtxxx | 4 | foreign table | oss_fdw | t |
public | smtxxxxx | 4 | foreign table | oss_fdw | t |
Em seguida, execute o ANALYZE manualmente em uma tabela sem estatísticas.
ANALYZE spatialxxxxx;
Retorne à página de monitoramento. O valor da métrica Stats Miss Table Num by DB diminuirá.
Perguntas frequentes
P: Por que o número de linhas retornado por HG_STATS_MISSING excede a contagem mostrada pela métrica de monitoramento?
As duas contagens utilizam critérios diferentes.
A ausência de estatísticas divide-se em dois tipos:
Tanto as estatísticas de contagem de linhas quanto as estatísticas de coluna estão completamente ausentes.
As estatísticas de contagem de linhas estão disponíveis para estimativas básicas nos planos de consulta, mas faltam estatísticas detalhadas de coluna (o que afeta apenas a precisão da estimativa).
A contagem do tipo (2) > a contagem do tipo (1).
Conforme descrito neste tópico, o número de linhas retornado por HG_STATS_MISSING inclui os casos em que as estatísticas de coluna estão ausentes, o que equivale à contagem do tipo (2).
A métrica de monitoramento Stats Miss Table Num by DB mostra apenas tabelas cujas estatísticas estão completamente ausentes, o que equivale à contagem do tipo (1).
Portanto, o número de linhas retornado por HG_STATS_MISSING >= o valor da métrica Stats Miss Table Num by DB.