SYSCS_UTIL.SYSCS_COMPRESS_TABLE

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.

Sintaxe

SYSCS_UTIL.SYSCS_COMPRESS_TABLE (IN SCHEMANAME VARCHAR(128),
IN TABLENAME VARCHAR(128), IN SEQUENTIAL SMALLINT)
SCHEMANAME
Um argumento de entrada do tipo VARCHAR(128) que especifica o esquema da tabela. Passar um valor nulo resulta em erro.
TABLENAME
Um argumento de entrada do tipo VARCHAR(128) que especifica o nome da tabela. A cadeia de caracteres deve corresponder exatamente ??s letras mai??sculas e min??sculas do nome da tabela: um argumento igual a "Fred" ?? passado para o SQL como o identificador delimitado 'Fred'. Passar um argumento nulo resulta em erro.
SEQUENTIAL
Um argumento de entrada diferente de zero do tipo SMALLINT for??a a opera????o executar no modo seq??encial, enquanto um argumento igual a zero for??a a opera????o a n??o executar no modo seq??encial. Passar um argumento nulo resulta em um erro.

Exemplo SQL

Para comprimir a tabela chamada CLIENTE no esquema chamado US, utilizando a op????o SEQUENTIAL:

CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE('US', 'CLIENTE', 1)

Exemplo Java

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.

O procedimento do sistema SYSCS_UTIL.SYSCS_COMPRESS_TABLE n??o pode devolver espa??o em disco para o sistema operacional enquanto o COMMIT n??o for executado. Isto significa que o espa??o ocupado pela tabela base e seus ??ndices n??o pode ser retornado para o sistema operacional enquanto COMMIT n??o for executado (somente o espa??o em disco alocado temporariamente pela classifica????o externa pode ser retornado para o sistema operacional antes de COMMIT). Recomenda-se utilizar o procedimento SYSCS_UTIL.SYSCS_COMPRESS_TABLE no modo de auto-efetiva????o.
Nota: Este procedimento obt??m um bloqueio exclusivo na tabela sendo comprimida. Todos os planos de instru????o dependentes da tabela e de seus ??ndices s??o invalidados. Para obter informa????es sobre como identificar espa??o n??o utilizado deve ser consultado o Guia do Servidor e Administra????o do Derby.
Refer??ncias relacionadas
SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE
SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS
SYSCS_UTIL.SYSCS_SET_STATISTICS_TIMING
SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY
SYSCS_UTIL.SYSCS_FREEZE_DATABASE
SYSCS_UTIL.SYSCS_UNFREEZE_DATABASE
SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE
SYSCS_UTIL.SYSCS_BACKUP_DATABASE
SYSCS_UTIL.SYSCS_EXPORT_TABLE
SYSCS_UTIL.SYSCS_EXPORT_QUERY
SYSCS_UTIL.SYSCS_IMPORT_TABLE
SYSCS_UTIL.SYSCS_IMPORT_DATA