Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

430
Vistas
El comando ANALIZAR en el índice devuelve una advertencia en PostgreSQL

Después de leer la documentación, descubrí que Analyze es para recopilar información sobre la tabla dada que el planificador utilizará en un momento posterior para planificar la ejecución de una consulta. En Oracle, hay una opción para analizar los índices. En el caso de PostgreSQL, el comando ANALIZAR devuelve una advertencia para el índice. Creo que el índice debería ser igualmente importante para PostgreSQL, entonces, ¿por qué no es compatible con PostgreSQL? Es posible que me haya perdido algo. ¿Alguien puede señalar la documentación correcta con la que puedo comprender mejor esto?

 postgres=# Create table test(empno integer); CREATE TABLE postgres=# create index idx_test1 on test(empno ); CREATE INDEX postgres=# \di idx_test1 List of relations Schema | Name | Type | Owner | Table --------+-----------+-------+---------+------- public | idx_test1 | index | Xyz | test (1 row) postgres=# analyze public.idx_test1 postgres-# ; 2020-06-29 16:37:30.665 IST [118434] WARNING: skipping "idx_test1" --- cannot analyze non-tables or special system tables WARNING: skipping "idx_test1" --- cannot analyze non-tables or special system tables ANALYZE postgres=#
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

ANALYZE recopila estadísticas sobre los datos de la tabla (p. ej., número de valores distintos, valor más alto, valor más bajo, etc.).

Cita del manual

Las estadísticas recopiladas por ANALYZE generalmente incluyen una lista de algunos de los valores más comunes en cada columna y un histograma que muestra la distribución aproximada de datos en cada columna.

Básicamente, un índice almacena una copia de los datos almacenados en la tabla (pero de forma ordenada, adecuada para una búsqueda rápida).

Por lo tanto, analizar el índice no arrojaría ninguna información adicional en comparación con el análisis de la tabla. La única excepción serían los índices basados en expresiones (ya que el valor de las expresiones no se almacena directamente en la tabla), para lo cual esto podría tener sentido. Sin embargo, eso no está implementado hasta donde yo sé.

over 4 years ago · Santiago Trujillo Denunciar

0

ANALYZE aceptará cualquier objeto que esté almacenado en el catálogo del sistema pg_class , es decir, tablas (particionadas o no particionadas), índices (particionados o no particionados), tablas foráneas, secuencias, tablas TOAST, vistas y vistas materializadas.

Sin embargo, solo procesará tablas particionadas o no particionadas y vistas materializadas. Estos son los únicos objetos para los que tiene sentido recopilar estadísticas. Para todos los demás tipos de objetos, recibirá una advertencia similar a la que recibió y el objeto se omitirá.

Para recopilar estadísticas para una columna o expresión indexada, ANALYZE la tabla en la que se define el índice.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda