Sunteți pe pagina 1din 4

Trabajo: Consulta VACUUM

Estudiante: Cristian Camilo Fernandez Rodriguez

Docente: Juan Manuel Galvis

Corporación Universitaria: CORHUILA


Carrera: Ingeniera de Sistemas
Asignatura: Base de datos 2

Departamento: Huila
Municipio: Neiva
Año: 2020
VACÍO
Nombre
VACÍO - recolectar basura y opcionalmente analizar una base de datos

Sinopsis
VACÍO [({FULL | FREEZE | VERBOSE | ANALYZE} [, ...])] [ table_name
[( column_name [, ...])]]
VACÍO [COMPLETO] [CONGELADO] [VERBOSA] [ nombre_tabla ]
VACÍO [COMPLETO] [CONGELADO] [VERBOSO] ANÁLISIS [ nombre_tabla [(
nombre_columna [, ...])]]

Descripción
VACUUM reclama el almacenamiento ocupado por tuplas muertas. En la operación normal
de PostgreSQL , las tuplas eliminadas u obsoletas por una actualización no se eliminan
físicamente de su tabla; permanecen presentes hasta que se realiza un VACÍO . Por lo
tanto, es necesario hacer VACÍO periódicamente, especialmente en tablas actualizadas
con frecuencia.

Sin ningún parámetro, VACUUM procesa todas las tablas de la base de datos actual que el
usuario actual tiene permiso para aspirar. Con un parámetro, VACUUM procesa solo esa
tabla.

ANÁLISIS DE VACÍO realiza un VACÍO y luego un ANÁLISIS para cada tabla


seleccionada. Esta es una forma práctica de combinación para los scripts de
mantenimiento de rutina. Consulte ANALIZAR para obtener más detalles sobre su
procesamiento.

Plain VACUUM (sin FULL ) simplemente reclama espacio y lo pone a disposición para su


reutilización. Esta forma del comando puede funcionar en paralelo con la lectura y
escritura normal de la tabla, ya que no se obtiene un bloqueo exclusivo. Sin embargo, no
se devuelve espacio adicional al sistema operativo (en la mayoría de los casos); solo se
mantiene disponible para su reutilización dentro de la misma tabla. VACUUM
FULL reescribe todo el contenido de la tabla en un nuevo archivo de disco sin espacio
adicional, permitiendo que el espacio no utilizado sea devuelto al sistema operativo. Este
formulario es mucho más lento y requiere un bloqueo exclusivo en cada tabla mientras se
procesa.

Cuando la lista de opciones está entre paréntesis, las opciones se pueden escribir en
cualquier orden. Sin paréntesis, las opciones deben especificarse exactamente en el
orden que se muestra arriba. La sintaxis entre paréntesis se agregó en PostgreSQL 9.0; la
sintaxis sin paréntesis está en desuso.
Parámetros
LLENO

Selecciona el vacío "completo" , que puede recuperar más espacio, pero lleva


mucho más tiempo y bloquea exclusivamente la mesa. Este método también
requiere espacio en disco adicional, ya que escribe una nueva copia de la tabla y
no libera la copia anterior hasta que se completa la operación. Por lo general, esto
solo debe usarse cuando se necesita reclamar una cantidad significativa de
espacio desde dentro de la tabla.

CONGELAR

Selecciona la "congelación" agresiva de tuplas. Especificar FREEZE es equivalente


a realizar VACUUM con
los parámetros vacuum_freeze_min_age y vacuum_freeze_table_age estableci
dos en cero. La congelación agresiva siempre se realiza cuando se reescribe la
tabla, por lo que esta opción es redundante cuando se especifica FULL .

VERBOSO

Imprime un informe detallado de la actividad de vacío para cada tabla.

ANALIZAR

Actualiza las estadísticas utilizadas por el planificador para determinar la forma


más eficiente de ejecutar una consulta.

nombre de la tabla

El nombre (opcionalmente calificado por el esquema) de una tabla específica para


aspirar. El valor predeterminado es todas las tablas en la base de datos actual.

nombre_columna

El nombre de una columna específica para analizar. El valor predeterminado es


todas las columnas. Si se especifica una lista de columnas, ANALIZAR está
implícito.

Salidas
Cuando se especifica VERBOSE , VACUUM emite mensajes de progreso para indicar qué
tabla se está procesando actualmente. También se imprimen varias estadísticas sobre las
tablas.

Notas
Para aspirar una mesa, normalmente se debe ser el propietario de la mesa o un
superusuario. Sin embargo, los propietarios de bases de datos pueden aspirar todas las
tablas en sus bases de datos, excepto los catálogos compartidos. (La restricción para
catálogos compartidos significa que un VACUUM verdadero en toda la base de datos solo
puede ser realizado por un superusuario). VACUUM omitirá cualquier tabla que el usuario
llamante no tenga permiso para aspirar.

VACUUM no se puede ejecutar dentro de un bloque de transacciones.

Para tablas con índices GIN , VACUUM (en cualquier forma) también completa cualquier


inserción de índice pendiente, moviendo las entradas de índice pendientes a los lugares
apropiados en la estructura principal del índice GIN . 

Recomendamos que las bases de datos de producción activas se aspiren con frecuencia
(al menos todas las noches) para eliminar las filas muertas. Después de agregar o
eliminar una gran cantidad de filas, puede ser una buena idea emitir
un comando ANÁLISIS DE VACÍO para la tabla afectada. Esto actualizará los catálogos
del sistema con los resultados de todos los cambios recientes y permitirá que
el planificador de consultas PostgreSQL tome mejores decisiones en la planificación de
consultas.

La opción COMPLETA no se recomienda para uso rutinario, pero puede ser útil en casos
especiales. Un ejemplo es cuando ha eliminado o actualizado la mayoría de las filas de
una tabla y desea que la tabla se reduzca físicamente para ocupar menos espacio en
disco y permitir escaneos de tabla más rápidos. VACUUM FULL generalmente reducirá la
tabla más de lo que lo haría un VACUUM simple .

VACUUM provoca un aumento sustancial en el tráfico de E / S, lo que puede causar un bajo


rendimiento para otras sesiones activas. Por lo tanto, a veces es aconsejable utilizar la
función de retraso de vacío basada en costos. 

PostgreSQL incluye una instalación de " vacío automático " que puede automatizar el


mantenimiento de vacío de rutina.

Ejemplos
Para limpiar una sola tabla onek , analícela para el optimizador e imprima un informe
detallado de la actividad de vacío:

VACÍO (VERBOSA, ANÁLISIS) onek;

Compatibilidad
No hay una declaración VACUUM en el estándar SQL.

S-ar putea să vă placă și