Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

422
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!