Coalesce will just do a reorganization on the existing data, in place and leave any fully free blocks it created belonging to the index - it does not release it, it will not cause the index to have to reallocate it.
Pour fusionner l'espace libre contigus , l'opération se passe au niveau du tablespace :
ALTER TABLESPACE toto COALESCE
DOC : Skrink compact
Le Coalesce ne locke pas les données pendant l'opération
Le Shrink locke les données pendant l'opération.
Le Shrink récupère l'espace libre au niveau du DBA_FREE_SPACE.
Le Coalesce ne récupère pas l'espace libre au niveau du DBA_FREE_SPACE.
alter table shrink space compact se manipule avec les segments situés dans l'ASSM avec des tablespaces de type LOCALLY MANAGED.
Deux clauses optionnelles vous permettent de contrôler la façon dont l'opération de Shrink s'exécute :
- COMPACT : donne de la souplesse, permet de compacter pendant qu'une requête longue s'exécute. On peut relancer la commande sans l'option COMPACT pendant les heures creuses.
- CASCADE : étend l'opération de Shrink à tous les segments dépendant de l'objet. Sur des tables partitionnées il ne faut pas préciser cette option.
La requête suivante retourne la liste des segments qui sont associés à un objet :
set linesize 141
col segment_owner format a20
col segment_name format a30
col segment_type format a15
col tablespace_name format a15
col partition_name format a15
col lob_column_name format a10
set serveroutput on
SELECT segment_owner, segment_name, segment_type, tablespace_name
FROM (TABLE(dbms_space.object_dependent_segments('UWCLASS', 'SERV_INST', NULL, 1)));