

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Riduzione delle tablespace in RDS per Oracle
<a name="Oracle.ShrinkTablespace"></a>

A partire da Oracle Database 26ai (26.0.0.0), Amazon RDS for Oracle supporta la riduzione del tablespace con questa procedura. `rdsadmin.rdsadmin_util.shrink_tablespace` Utilizza questa procedura per recuperare lo spazio inutilizzato in una tablespace comprimendone i file di dati. La riduzione riduce il consumo di storage senza la migrazione dei dati o la ricreazione del tablespace.

**Topics**
+ [Panoramica di](#Oracle.ShrinkTablespace.Overview)
+ [Requisiti](#Oracle.ShrinkTablespace.Requirements)
+ [Sintassi](#Oracle.ShrinkTablespace.Syntax)
+ [Parameters](#Oracle.ShrinkTablespace.Parameters)
+ [Esempi](#Oracle.ShrinkTablespace.Examples)
+ [Considerazioni](#Oracle.ShrinkTablespace.Considerations)
+ [Risorse correlate](#Oracle.ShrinkTablespace.Resources)

## Panoramica di
<a name="Oracle.ShrinkTablespace.Overview"></a>

Nel tempo, le tablespace di un database Oracle possono accumulare spazio inutilizzato dai dati eliminati o riorganizzati. La `rdsadmin.rdsadmin_util.shrink_tablespace` procedura include la `DBMS_SPACE.SHRINK_TABLESPACE` funzionalità Oracle e gestisce i privilegi interni richiesti per l'utente.

La riduzione del tablespace supporta le seguenti modalità:
+ **Modalità di analisi** (`DBMS_SPACE.TS_MODE_ANALYZE`): valuta il tablespace e segnala quanto spazio è possibile recuperare, senza apportare modifiche.
+ **Shrink mode** (`DBMS_SPACE.TS_MODE_SHRINK`): sposta gli oggetti e ridimensiona i file di dati nel tablespace per recuperare lo spazio inutilizzato. Questa è la modalità predefinita.

## Requisiti
<a name="Oracle.ShrinkTablespace.Requirements"></a>

Per utilizzare la riduzione del tablespace, l'istanza DB deve soddisfare i seguenti requisiti:
+ Oracle Database 26ai o versioni successive
+ Oracle Enterprise Edition

## Sintassi
<a name="Oracle.ShrinkTablespace.Syntax"></a>

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace(
  p_tablespace_name => '{{tablespace_name}}',
  p_shrink_mode     => {{mode}},
  p_target_size     => {{target_bytes}});
```

## Parameters
<a name="Oracle.ShrinkTablespace.Parameters"></a>


**parametri shrink\_tablespace**  

| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | --- | 
| `p_tablespace_name` | `VARCHAR2` | — | Sì | Il nome del tablespace da ridurre. | 
| `p_shrink_mode` | `NUMBER` | `2` (`TS_MODE_SHRINK`) | No | La modalità di compattazione. Utilizzate `DBMS_SPACE.TS_MODE_ANALYZE` (`1`) solo per analizzare o `DBMS_SPACE.TS_MODE_SHRINK` (`2`) per eseguire la riduzione. | 
| `p_target_size` | `NUMBER` | `0` | No | La dimensione di destinazione, in byte. Usa `0` (impostazione predefinita) per ridurla alla dimensione minima possibile. Specificate un valore positivo da ridurre a un obiettivo specifico. | 

## Esempi
<a name="Oracle.ShrinkTablespace.Examples"></a>

### Analisi di una tablespace alla ricerca di spazio recuperabile
<a name="Oracle.ShrinkTablespace.Examples.Analyze"></a>

Per analizzare un tablespace senza apportare modifiche, esegui il comando seguente:

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_ANALYZE);
```

Di seguito è riportato un output di esempio:

```
-------------------ANALYZE RESULT-------------------
Total Movable Objects: 0
Total Movable Size(GB): 0
Original Datafile Size(GB): .1
Suggested Target Size(GB): .06
Process Time: +00 00:00:00.021513
```

### Riduzione di una tablespace alla dimensione minima
<a name="Oracle.ShrinkTablespace.Examples.Minimum"></a>

Per ridurre un tablespace e recuperare tutto lo spazio inutilizzato, esegui il comando seguente:

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS');
```

Di seguito è riportato un output di esempio:

```
-------------------SHRINK RESULT-------------------
Total Moved Objects: 0
Total Moved Size(GB): 0
Original Datafile Size(GB): .1
New Datafile Size(GB): .05
Process Time: +00 00:00:00.281151
```

### Riduzione di un tablespace a una dimensione di destinazione specifica
<a name="Oracle.ShrinkTablespace.Examples.Target"></a>

Per ridurre un tablespace a una dimensione target in byte, specificate il parametro. `p_target_size` Se l'obiettivo è inferiore alla dimensione minima raggiungibile, Oracle lo regola automaticamente verso l'alto:

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_SHRINK, 52428800);
```

## Considerazioni
<a name="Oracle.ShrinkTablespace.Considerations"></a>

Quando compatti una tablespace, considera quanto segue:
+ La riduzione del tablespace è un'operazione online. Gli oggetti nel tablespace rimangono accessibili durante la compressione.
+ L'operazione di compattazione può spostare oggetti, come tabelle e indici, all'interno del tablespace per consolidare lo spazio libero prima di ridimensionare i file di dati.
+ Gli indici rimangono validi dopo l'operazione di compattazione e l'integrità dei dati viene preservata.
+ Se il valore di `p_target_size` è inferiore allo spazio occupato attualmente dagli oggetti, Oracle regola l'obiettivo alla dimensione minima raggiungibile.
+ Il valore di non `p_target_size` deve superare la dimensione corrente del tablespace. Specificate un obiettivo inferiore o uguale alla dimensione corrente.
+ Le transazioni attive sugli oggetti nella tablespace potrebbero impedire all'operazione di recuperare tutto lo spazio disponibile. Per ottenere risultati ottimali, esegui lo shrink durante un periodo di bassa attività.
+ Le chiamate `DBMS_SPACE.SHRINK_TABLESPACE` dirette senza il `rdsadmin_util` wrapper non sono supportate. Usa sempre il wrapper. `rdsadmin.rdsadmin_util.shrink_tablespace`

## Risorse correlate
<a name="Oracle.ShrinkTablespace.Resources"></a>
+ [DBMS\_ SPACE.SHRINK \_TABLESPACE](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPACE.html) nella documentazione di Oracle Database
+ Per ulteriori informazioni, consulta [Esecuzione di attività di database comuni per le istanze database Oracle](Appendix.Oracle.CommonDBATasks.Database.md).