I've found file /usr/lib64/monetdb5/createdb/20_vacuum.sql with this functions: -- Vacuum a relational table should be done with care. -- For, the oid's are used in join-indices. -- Vacuum of tables may improve IO performance and disk footprint. -- The foreign key constraints should be dropped before -- and re-established after the cluster operation. create procedure shrink(sys string, tab string) external name sql.shrink; create procedure reuse(sys string, tab string) external name sql.reuse; create procedure vacuum(sys string, tab string) external name sql.vacuum; Which approach is used in above vacuum procedure? I tried to use it: sql>delete from sys.transfer_ip ; 651950 affected rows (117.620ms) sql>call vacuum('sys','transfer_ip'); sql>select vacuum('sys','transfer_ip'); MAPI = (monetdb) /tmp/.s.monetdb.50000 ACTION= read_line QUERY = select vacuum('sys','transfer_ip'); ERROR = !Connection terminated Database size was the same. -- Thanks, Eugene Prokopiev