La vista HOLOGRES_STATISTIC.HG_STATS_MISSING enumera las tablas de la base de datos actual que no tienen estadísticas.
Esta vista le permite:
Consultar las tablas sin estadísticas. La falta de estadísticas puede provocar que el optimizador genere planes de ejecución deficientes; por ejemplo, un orden de unión incorrecto que desencadene operaciones shuffle en tablas grandes, consultas lentas o errores de memoria insuficiente (OOM).
Identificar las tablas específicas asociadas a la métrica Stats Miss Table Num by DB en el monitoreo de Hologres.
Ejecutar de forma selectiva comandos ANALYZE manuales u otras operaciones de administración en las tablas que carecen de estadísticas.
Límites
Su instancia de Hologres debe ejecutar la versión V2.2.15 o posterior.
Una consulta devuelve únicamente las tablas de los esquemas sobre los cuales el usuario que ejecuta la consulta tiene el permiso SCHEMA USAGE o uno superior.
No se muestran los tipos de tabla distintos a las tablas internas de Hologres, las tablas particionadas, las tablas externas y las vistas materializadas. Estos tipos también se excluyen de la métrica.
Campos
A continuación se describen los campos de la vista HOLOGRES_STATISTIC.HG_STATS_MISSING.
Campo | Tipo de dato | Descripción |
schemaname | TEXT | Nombre del esquema. |
tablename | TEXT | Nombre de la tabla. |
nattrs | INTEGER | Número de columnas. |
tablekind | TEXT | Tipo de tabla (por ejemplo, table o foreign_table). |
fdwname | TEXT | Nombre del contenedor de datos externos (FDW). Se completa solo para tablas externas. |
autovacuum_enabled | TEXT | Indica si Auto Analyze está habilitado para la tabla. Nota Disponible solo en la versión V3.1. |
reason | TEXT | Motivo por el cual faltan las estadísticas. Use este campo para determinar la siguiente acción. Nota Disponible solo en la versión V3.1. |
reason: clasificación de los motivos de ausencia
|
Motivo |
Categoría |
Descripción |
Acción recomendada |
|
|
Faltan estadísticas de columna |
No se han recopilado estadísticas (como MCV e histograma) para la columna especificada. |
Ejecute la instrucción |
|
|
Faltan estadísticas de columna |
Falta el contador HyperLogLog (HLL) de la columna especificada. HLL se usa para estimar el número de valores distintos (NDV) de las tablas secundarias particionadas y cumple una función clave en la fusión de estadísticas de las tablas particionadas. |
Ejecute la instrucción |
|
|
No se pueden fusionar las estadísticas de la tabla particionada lógica |
La tabla particionada lógica tiene particiones secundarias cuyas estadísticas no se pueden fusionar. Esto puede deberse a estadísticas faltantes o incompatibles en algunas particiones secundarias. |
Ejecute la instrucción |
|
|
Recopilación automática deshabilitada explícitamente |
AUTO ANALYZE se deshabilitó manualmente para la tabla, por lo que las estadísticas no se recopilan automáticamente. |
Para volver a habilitar el mantenimiento automático de estadísticas, active AUTO ANALYZE en la tabla: |
|
|
Incompatibilidad de tipos |
El tipo de dato de las estadísticas MCV (valores más comunes) o del histograma existentes para la columna especificada no coincide con el tipo de dato actual de la columna. Esto suele ocurrir después de modificar el tipo de la columna. |
Vuelva a ejecutar la instrucción |
|
|
Excepción de tabla |
La tabla se eliminó o dejó de ser accesible durante la comprobación de estadísticas. |
No se requiere ninguna acción. La tabla ya no existe y las consultas posteriores la ignoran automáticamente. |
Ejemplos
En la lista de instancias, haga clic en el ID de la instancia para acceder a la página de detalles de la instancia. Haga clic en Group Name, seleccione Binlog and Analyze y consulte Stats Miss Table Num by DB.
Tome una de las bases de datos como referencia para consultar las tablas que no tienen estadísticas en la base de datos actual.
SELECT * FROM hologres_statistic.hg_stats_missing;
Salida de ejemplo:
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 |
Después, ejecute ANALYZE manualmente en una tabla que carezca de estadísticas.
ANALYZE spatialxxxxx;
Regrese a la página de monitoreo. El valor de la métrica Stats Miss Table Num by DB disminuirá.
Preguntas frecuentes
P: ¿Por qué el número de filas devuelto por HG_STATS_MISSING supera el recuento que muestra la métrica de monitoreo?
Los dos recuentos usan criterios diferentes.
Las estadísticas faltantes se dividen en dos tipos:
Faltan por completo tanto las estadísticas de recuento de filas como las estadísticas de columna.
Las estadísticas de recuento de filas están disponibles y se pueden usar para la estimación básica en los planes de consulta, pero faltan las estadísticas detalladas de columna (lo cual solo afecta la precisión de la estimación).
El recuento del tipo (2) > el recuento del tipo (1).
Como se describe en este tema, el número de filas devuelto por HG_STATS_MISSING incluye los casos en los que faltan estadísticas de columna, lo que equivale al recuento del tipo (2).
La métrica de monitoreo Stats Miss Table Num by DB solo muestra las tablas cuyas estadísticas faltan por completo, lo que equivale al recuento del tipo (1).
Por lo tanto, el número de filas devuelto por HG_STATS_MISSING >= el valor de la métrica Stats Miss Table Num by DB.