O procedimento do sistema SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE ?? utilizado para recuperar o espa??o alocado, mas n??o utilizado, de uma tabela e seus ??ndices. Normalmente, existe espa??o alocado mas n??o utilizado quando uma grande quantidade de dados ?? exclu??da da tabela, e n??o ocorrem inser????es subseq??entes para utilizar o espa??o criado pelas exclus??es. Por padr??o, o Derby n??o retorna para o sistema operacional o espa??o n??o utilizado. Por exemplo, uma vez que uma p??gina tenha sido alocada para uma tabela ou um ??ndice, esta n??o ?? devolvida automaticamente para o sistema operacional at?? que a tabela ou o ??ndice tenha sido removido. O procedimento do sistema SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE permite devolver para o sistema operacional o espa??o n??o utilizado.
Este procedimento do sistema pode ser utilizado para ocasionar tr??s n??veis de compress??o in loco de uma tabela SQL: PURGE_ROWS, DEFRAGMENT_ROWS e TRUNCATE_END. Diferentemente de SYSCS_UTIL.SYSCS_COMPRESS_TABLE(), todo o trabalho ?? feito in loco na tabela ou ??ndice existente.
SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN PURGE_ROWS SMALLINT, IN DEFRAGMENT_ROWS SMALLINT, IN TRUNCATE_END SMALLINT )
CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CLIENTE', 1, 1, 1);
CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('US', 'CLIENTE', 0, 0, 1);
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CLIENTE"); cs.setShort(3, (short) 1); cs.setShort(4, (short) 1); cs.setShort(5, (short) 1); cs.execute();
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CLIENTE"); cs.setShort(3, (short) 0); cs.setShort(4, (short) 0); cs.setShort(5, (short) 1); cs.execute();