PostgreSQL: declaración de VACÍO

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

PostgreSQL: declaración de VACÍO

Este tutorial de PostgreSQL explica cómo usar PostgreSQL Comando VACÍO Con sintaxis y ejemplos.

describir

La instrucción VACUUM se usa para recuperar almacenamiento mediante la eliminación de datos obsoletos o tuplas de la base de datos de PostgreSQL.

sintaxis

La sintaxis de la instrucción VACUUM en PostgreSQL es:

VACUUM [FULL] [FREEZE] [VERBOSE] [table_name ];

o

VACUUM [FULL] [FREEZE] [VERBOSE]
ANALYZE table_name [ (col1, col2, ... col_n) ];

parámetro o parámetro

Totalmente opcional. Si se especifica, la base de datos escribe todo el contenido de la tabla en un archivo nuevo. Esto recupera todo el espacio no utilizado y requiere un bloqueo exclusivo en cada mesa que se limpia. Congelar opcional. Si se especifica, las tuplas se congelarán activamente cuando se vacíe la tabla. Este es el comportamiento predeterminado cuando se especifica FULL, por lo que especificar FULL y FREEZE es redundante. Los detalles son opcionales. Si se especifica, se imprimirá un informe de actividad que detalla la actividad de vacío para cada mesa. El análisis es opcional. Si se especifica, se actualizarán las estadísticas utilizadas por el planificador. Estas estadísticas se utilizan para determinar el plan más eficiente para ejecutar una consulta en particular. El nombre de la tabla es opcional. Si se especifica, solo se limpiarán las tablas enumeradas. Si no se especifica, se limpiarán todas las tablas de la base de datos. col1, col2, … col_n opcional. Si se especifica, estas son las columnas que se analizarán.

notas

  • Cada vez que se realiza una actualización en la tabla, el registro original se mantiene en la base de datos. Vacío eliminará estos registros antiguos (es decir, tuplas) y reducirá el tamaño de la base de datos PostgreSQL.
  • Solo puede usar aquellas tablas de vacío para las que tiene privilegios de VACÍO.
  • No puede ejecutar el comando VACUUM dentro de una transacción.

ejemplo

En PostgreSQL, el proceso de limpieza es una actividad regular que debe realizarse para eliminar tuplas antiguas y obsoletas y minimizar el tamaño del archivo de la base de datos.

Veamos un ejemplo de cómo usar la instrucción VACUUM en PostgreSQL.

Recuperar espacio para reutilizar por la misma mesa

El primer ejemplo muestra cómo recuperar espacio para que la misma tabla pueda utilizar el espacio no utilizado. No reduce el tamaño del archivo de la base de datos de PostgreSQL, porque el sistema operativo no reclama el espacio, solo la tabla que asignó el espacio.

Por ejemplo:

VACUUM;

Este ejemplo limpiará todas las tablas de la base de datos. Liberará espacio dentro de cada mesa y dejará espacio libre para que la misma mesa lo reutilice. No devuelve espacio al sistema operativo, por lo que no reduce el tamaño del archivo de la base de datos.

Recupere espacio y minimice los archivos de la base de datos

Si quisiera limpiar todas las tablas y minimizar los archivos de la base de datos devolviendo el espacio no utilizado al sistema operativo, ejecutaría la siguiente declaración de vacío:

VACUUM FULL;

Este ejemplo reescribe todas las tablas en un archivo nuevo, por lo que se requiere un bloqueo exclusivo en cada tabla. Los archivos de la base de datos se minimizarán ya que todo el espacio no utilizado se recuperará en el sistema operativo.

Recuperar espacio en la mesa

A continuación, veamos cómo aspirar una tabla específica, no toda la base de datos.

Por ejemplo:

VACUUM products;

Este ejemplo solo limpiará la tabla de productos. Liberará espacio en la tabla de productos y reservará espacio libre para que lo use la tabla de productos. El tamaño del archivo de la base de datos no disminuye.

Si desea volver a asignar espacio no utilizado al sistema operativo, debe agregar la opción FULL a la instrucción VACUUM de la siguiente manera:

VACUUM FULL products;

Esto no solo libera espacio no utilizado en la tabla de productos, sino que también permite que el sistema operativo recupere espacio y reduzca el tamaño de la base de datos.

Informe de actividad de vacío

Finalmente, puede agregar la opción VERBOSE al comando VACUUM para mostrar un informe de actividad para el proceso de vacío.

Por ejemplo:

VACUUM FULL VERBOSE products;

Esto realizará un vacío completo de la hoja de producto. Permítanos mostrarle lo que esperaría ver como resultado de un informe de actividad de vacío:

totn=# VACUUM FULL VERBOSE products;
INFO:  vacuuming "public.products"
INFO:  "products": found 4 removable, 5 nonremovable row versions in 1 pages
DETAIL:  0 dead row versions cannot be removed yet.
CPU 0.00s/0.00u sec elapsed 0.04 sec.
VACUUM

Este informe de actividad mostrará las mesas que se están limpiando y los detalles y el tiempo requerido para realizar la operación de limpieza.

A continuación, obtenga más información sobre la función AUTOVACUUM a partir de PostgreSQL 8.1

(Visited 17 times, 1 visits today)