Come comprimere i dati in Oracle 12c

Gli amministratori di database (DBA) trascorrono molto del loro tempo e fatica la compressione dei dati per la conservazione e l'archiviazione. Nei database Oracle 12c, c ompression è l'atto di prendere dati nel database e l'applicazione di processi che ridurre la sua impronta di archiviazione.

Poiché ogni anno che passa si traduce in sempre più dati nel database, senza processi specifici in luogo, un database può rapidamente crescere fuori controllo, consumando tutti i tipi di risorse e di ostacolare le prestazioni. Come un database di prima classe, Oracle fornisce gli strumenti di compressione DBA per rendere i lavori di rimozione dei dati (spurgo) e dati di conservazione (conservazione e archiviazione) più veloce e più efficiente.

Come utilizzare la compressione di base in Oracle 12c

Compressione di base nel database è stato intorno dal Oracle 9i. Si chiama la compressione di base perché è molto semplice, in quello che fa. Tuttavia, è anche limitato nelle sue applicazioni. Compressione di base funziona come utilizzare uno strumento zippare per comprimere un file del sistema operativo. Nel database, gli oggetti possono essere compressi.

Utilizzando la compressione di base per ridurre i formati di tabella può permettersi l'efficienza nell'uso dello spazio (ovviamente), CPU (scansione tabella), e la memoria (utilizzo della cache buffer). La maggiore efficienza significa che tabelle e backup occupano meno spazio. I backup eseguiti più rapidamente pure.

Essere consapevoli, però, che la compressione di base è consigliato soprattutto per gli oggetti con una bassa frequenza di Data Manipulation Language (DML). Si preferisce che gli oggetti sono praticamente solo lettura. Si può dire praticamente perché alcuni dati non è al 100 per cento in bianco e nero.

Ad esempio, il nome di una persona raramente cambia, quindi un elenco di nomi di dipendenti è praticamente sola lettura. Un cambiamento può verificarsi una volta ogni tanto, ma, così di rado che la compressione dei dati e incorrere l'overhead di un cambiamento è trascurabile.

Pensare in questo modo, se si desidera modificare un file compresso sul vostro sistema operativo, cosa si deve fare prima? Devi decomprimerlo. Lo stesso vale con la compressione di base Oracle. DML su file compressi soffre in termini di prestazioni.

Ecco un esempio di compressione.

  1. Accedere a SQL * Plus come utente HR e fare una copia dei dipendenti della tabella demo chiamato emp digitando

    <Creare tavolo emp come select * from dipendenti;>
  2. Controllare le dimensioni di questa tabella digitando

    <select SEGMENT_NAME, byte
    da user_segments
    dove SEGMENT_NAME = 'EMP';>

    Si vede qualcosa di simile a questo:

    SEGMENT_NAME BYTES
    -------------- --------------------
    EMP 65.536

  3. Inserire righe in emp eseguendo la seguente dichiarazione fino a vedere "109.568 righe creato":

    <Inserire nel emp select * from emp;>

  4. Controllare la dimensione della tabella emp nuovo digitando

    <select SEGMENT_NAME, byte
    da user_segments
    dove SEGMENT_NAME = 'EMP';>

    Si vede qualcosa di simile a questo:

    SEGMENT_NAME BYTES
    -------------- --------------------
    EMP 18.874.368

  5. Comprimere i file digitando

    <Alter table emp mossa compressa;>

    Vedete questo:

    Tabella alterato.

  6. Verificare la dimensione ancora una volta digitando

    <select SEGMENT_NAME, byte
    da user_segments
    dove SEGMENT_NAME = 'EMP';>

    Si vede qualcosa di simile a questo:

SEGMENT_NAME BYTES
-------------- --------------------
EMP 9.437.184

Come potete vedere, il tavolo ha ridotto di circa il 50 per cento della dimensione originale. A seconda del tipo e l'organizzazione dei dati, è possibile visualizzare diversi gradi di compressione.

Per visualizzare le tabelle dati di compressione nel dizionario dei dati, tipo

<Select table_name, COMPRESSIONE, COMPRESS_FOR
da user_tables
dove table_name = 'EMP';>

Si vede qualcosa di simile a questo:

TABLE_NAME COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMP BASIC ABILITATO

Per rimuovere la compressione da una tabella in caso di necessità di aggiornare un sacco di dati, tipo

<Alter table emp mossa nocompress;>

Vedete questo:

Tabella alterato.

Come utilizzare la compressione avanzata in Oracle 12c

La cosa principale da capire circa la compressione avanzata è che utilizza algoritmi di compressione più sviluppate e le politiche di accesso ai dati in modo che il sovraccarico di emissione DML contro i vostri oggetti compressa è del tutto eliminato. Beh, l'altra cosa importante è necessario essere consapevoli è che la compressione avanzata è una caratteristica licenza.

Sì, questo significa che si deve pagare per questo. Il vostro rappresentante Oracle può aiutare a capire quanto costerà. Una cosa che si dovrebbe prendere in considerazione, però, è il ritorno sugli investimenti è possibile ottenere da compressione avanzata. Avrete bisogno di meno di stoccaggio, e molte operazioni sarà migliorata. Il calcolo di questi rendimenti sarà una parte importante del vostro processo decisionale.

L'utilizzo di compressione avanzata è molto semplice. Se avete seguito la demo precedente, si dispone di una tabella di EMP in formato non compressi. Si utilizza tale tabella EMP nei seguenti passaggi per applicare compressione avanzata:

  1. Per comprimere la tabella EMP con avanzate di compressione, di tipo

    <Alter table EMP mossa impacco per tutte le operazioni;>

    Si vede qualcosa di simile a questo:

    Tabella alterato.

  2. Per controllare la nuova dimensione della tabella emp, tipo

    <select SEGMENT_NAME, byte
    da user_segments
    dove SEGMENT_NAME = 'EMP';>

    Si vede qualcosa di simile a questo:

    SEGMENT_NAME BYTES
    -------------- --------------------
    EMP 9.437.184

  3. Controllare i dettagli di compressione nel dizionario dati digitando

    <Select table_name, COMPRESSIONE, COMPRESS_FOR
    da user_tables
    dove table_name = 'EMP';>

    Si vede qualcosa di simile a questo:

    TABLE_NAME COMPRESS COMPRESS_FOR
    ------------------------------ -------- ------------
    EMP ABILITATO ADVANCED.

    La tabella è abilitata per tutte le operazioni, tra cui DML con una minima perdita di prestazioni.

Avrete notato negli esempi sia per la compressione di base e avanzata MOVE parola chiave è utilizzata nei comandi. Se non si utilizza la parola chiave SPOSTA, la tabella non è compresso, ma tutti i dati futuri inseriti nella tabella sarà compresso.

Se si utilizza la parola chiave SPOSTA e ci sono gli indici della tabella, questi indici diventeranno corrotti. Questa corruzione si verifica perché si sta modificando la posizione riga della tabella quando si proattivo comprimere i dati.

Per risolvere questo problema, dopo un'azione di compressione SPOSTA, ricostruire gli indici. Questa è una ragione che si può scegliere di comprimere i dati per le future operazioni ora e poi passare in un secondo momento quando si può incorrere in downtime per ricostruire gli indici.