es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Necesita ayuda para utilizar la opción de “análisis en etapas” del comando vacuumdb.

Tengo un clúster PostgreSQL 10 que contiene muchas bases de datos, el tamaño total es de 500 GB. He lanzado el comando vacuumdb usando la opción analyze-in-stages:

vacuumdb --all --verbose --analyze-in-stages

y he visto en la salida:

vacuumdb: procesando la base de datos "db1": Generando estadísticas optimizadas mínimas (1 target)
vacuumdb: procesando la base de datos "db2": Generando estadísticas optimizadas mínimas (1 target)
...
vacuumdb: procesando la base de datos "dbN": Generando estadísticas optimizadas mínimas (1 targets)
vacuumdb: procesando la base de datos "db1": Generando estadísticas optimizadas medias (10 targets)
vacuumdb: procesando la base de datos "db2": Generando estadísticas optimizadas medias (10 targets)
...
vacuumdb: procesando la base de datos "dbN": Generando estadísticas optimizadas medias (10 targets)
vacuumdb: procesando la base de datos "db1": Generando estadísticas optimizadas predeterminadas completas
....

Así que entiendo que VACUUM está procesando en etapas: mínimo, medio, predeterminado usando un target, pero ¿cómo se controla este “target”? ¿Cuál es el parámetro? ¿Hay más etapas ya que aún no ha terminado?

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en PostgreSQL 10 y vacuum, déjeme ayudarle con su consulta.

    En el comando que ha lanzado, se utiliza la opción “analyze-in-stages”. Esta opción indica a PostgreSQL que realice la operación ANALYZE en etapas. Las etapas son “mínima”, “media” y “predeterminada”.

    Durante la etapa “mínima”, PostgreSQL genera solo un objetivo para las estadísticas del optimizador. El objetivo se selecciona en función del tamaño de la tabla. Para tablas mayores de 128 MB, el objetivo se establece en 2.000. Para tablas más pequeñas, el objetivo se calcula mediante una fórmula.

    De manera similar, durante la etapa “media”, PostgreSQL genera diez objetivos para las estadísticas del optimizador, nuevamente, en función del tamaño de la tabla.

    La etapa final, “predeterminada”, genera estadísticas completas del optimizador para las tablas.

    Los valores del objetivo se calculan en función de la fórmula: (tamaño_actual_de_la_relación / 8192) * 1,0. Por ejemplo, si el tamaño actual de su tabla es de 16 GB, entonces el objetivo sería (16 x 1024 x 1024 x 1024 / 8192) * 1,0 = 2097152.

    Como usted no ha mencionado si hay más etapas después de “predeterminada”, asumiendo que todavía no ha finalizado, no hay más etapas. La etapa “predeterminada” genera estadísticas completas del optimizador, que es la última etapa.

    Espero que esto ayude a aclarar su duda. Por favor, hágamelo saber si tiene alguna otra consulta.

Comments are closed.