Обычно приложения должны отсоединять большие объекты, которые больше не нужны, но в случае, если они этого не делают, PostgreSQL поставляется с утилитой с именем vacuumlo
, которая делает именно то, что вы запрашиваете .
Описание:
вакуум - это простая служебная программа, которая удалит все «осиротевшие»
большие объекты из базы данных PostgreSQL. Большой осиротевший объект
(LO) считается любым LO, OID которого не указан ни в одном oid
или lo столбец данных базы данных.
Если есть одна таблица с oid
, указывающая на большие объекты, большие потерянные объекты могут быть найдены непосредственно с помощью этого запроса (PostgreSQL 9.0 или новее):
select oid from pg_largeobject_metadata m where not exists
(select 1 from name_of_table where m.oid=name_of_oid_column);