O procedimento do sistema SYSCS_UTIL.SYSCS_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, ou os ??ndices s??o atualizados. 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_COMPRESS_TABLE permite devolver para o sistema operacional o espa??o n??o utilizado.
SYSCS_UTIL.SYSCS_COMPRESS_TABLE (IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN SEQUENTIAL SMALLINT)
Para comprimir a tabela chamada CLIENTE no esquema chamado US, utilizando a op????o SEQUENTIAL:
CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE('US', 'CLIENTE', 1)
Para comprimir a tabela chamada CLIENTE no esquema chamado US, utilizando a op????o SEQUENTIAL:
CallableStatement cs = conn.prepareCall ("CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?, ?)"); cs.setString(1, "US"); cs.setString(2, "CLIENTE"); cs.setShort(3, (short) 1); cs.execute();
Se o par??metro SEQUENTIAL n??o for especificado, o Derby reconstruir?? todos os ??ndices simultaneamente com a tabela base. Se n??o for especificado o argumento SEQUENTIAL, este procedimento poder?? fazer uso intenso da mem??ria e utilizar muito espa??o tempor??rio em disco (uma quantidade aproximadamente igual a duas vezes o espa??o utilizado, mais o espa??o alocado mas n??o utilizado). Isto acontece porque o Derby comprime a tabela copiando as linhas ativas para o novo espa??o alocado (em vez de embaralhar e truncar o espa??o existente). O espa??o extra utilizado ?? retornado ao sistema operacional no COMMIT.
Quando ?? especificado SEQUENTIAL, o Derby comprime a tabela base e depois comprime cada um dos ??ndices seq??encialmente. Utilizar SEQUENTIAL faz com que seja usado menos mem??ria e espa??o em disco, mas demora mais tempo. Deve ser utilizado o argumento SEQUENTIAL para reduzir a utiliza????o de mem??ria e espa??o em disco.