Hola Lista
Tengo la siguiente tabla:
prod=# \dS+ cuenta
Table "cuenta "
Column | Type |
Modifiers | Storage | Stats target | Description
-------------------------------------------+-----------------------------+-----------+----------+--------------+-------------
id | bigint
| not null | plain | |
transaccion_id | character varying(64) |
| extended | |
cliente_id | bigint |
not null | plain | |
codigo_comercio | character varying(32) |
| extended | |
xml_arbol_similares | text |
| extended | |
fecha_creacion | timestamp without time zone |
not null | plain | |
Indexes:
" cuenta _pkey" btree (id)
Has OIDs: no
la columna xml_arbol_similares guarda unos XML grandes, por lo tanto, esta
tabla tiene una tabla TOAST asociada:
relation | size
---------------------------------------------------+---------
cuenta | 253 GB
pg_toast.pg_toast_4367649 | 245 GB
select 4367649 ::regclass;
regclass
------------------------
cuenta
(1 row)
tamaño de los registros de la tabla EXCEPTO: xml_arbol_similares
prod=# SELECT pg_size_pretty(SUM(tamanos))
prod -# FROM (
prod (# SELECT pg_column_size(row(b.*)) as tamanos
prod (# FROM (select id, transaccion_id, cliente_id, codigo_comercio,
fecha_creacion
prod (# from cuenta) as b
prod (# ) AS c;
pg_size_pretty
----------------
4146 MB
(1 row)
tamaño de los datos de la columna xml_arbol_similares :
prod =# SELECT pg_size_pretty(SUM(tamanos))
prod -# FROM (
prod (# SELECT pg_column_size(row(b.*)) as tamanos
prod (# FROM (select xml_arbol_similares
prod (# from cuenta) as b
prod (# ) AS c;
pg_size_pretty
----------------
263 GB
(1 row)
Para recuperar espacio, se piensa eliminar la información dela columna
xml_arbol_similares del 2019 hacia atras;
update cuenta set xml_arbol_similares=null where fecha_creacion <
cast('2019-01-01' as timestamp)
pero tendría que ejecutar un VACUUM FULL sobre cuenta para recuperar este
espacio, la pregunta es? como los datos a eliminar (de la columna
xml_arbol_similares) se encuentran en la tabla TOAST es posible VACUUM
FUL sobre la TOAST SIN BLOQUEO de la principal? o que procedimiento se
puede seguir SIN QUE bloquee la operación de la tabla cuenta?
La versión de motor es pg 9.3 (si, esta sin soporte :-S ..por eso
necesitamos reducir el tamaño de esta tabla para su migración)
Muchas Gracias Lista y quedo atento
--
Cordialmente,
Ing. Hellmuth I. Vargas S.