DB2 - Spazi tabelle

Questo capitolo descrive i tablespace in dettaglio

introduzione

Un tablespace è una struttura di archiviazione, contiene tabelle, indici, oggetti di grandi dimensioni e dati lunghi. Può essere utilizzato per organizzare i dati in un database in un gruppo di archiviazione logica correlato alla posizione in cui i dati sono archiviati su un sistema. Questi spazi tabella sono archiviati in gruppi di partizioni del database

Vantaggi degli spazi tabella nel database

I tablespace sono utili nel database in vari modi indicati come segue:

Recoverability: I tablespace rendono più convenienti le operazioni di backup e ripristino. Utilizzando un singolo comando, è possibile eseguire il backup o ripristinare tutti gli oggetti del database negli spazi tabella.

Automatic storage Management: Database manager crea ed estende i contenitori a seconda delle esigenze.

Memory utilization: Un singolo bufferpool può gestire più tablespace. È possibile assegnare tablespace temporanei al proprio bufferpool per aumentare le prestazioni di attività come ordinamenti o join.

Contenitore

Gli spazi tabelle contengono uno o più contenitori. Un contenitore può essere un nome di directory, un nome di dispositivo o un nome di file. In un database, un singolo tablespace può avere diversi contenitori sullo stesso dispositivo di archiviazione fisico. Se il tablespace viene creato con l'opzione tablespace di archiviazione automatica, la creazione e la gestione dei contenitori viene gestita automaticamente dal database manager. Se non viene creato con l'opzione tablespace di archiviazione automatica, è necessario definire e gestire personalmente i contenitori.

Spazi tabelle predefiniti

Quando crei un nuovo database, il database manager crea alcuni tablespace predefiniti per il database. Questo spazio tabella viene utilizzato come archivio per i dati utente e temporanei. Ogni database deve contenere almeno tre tablespace come indicato di seguito:

  1. Spazio tabella del catalogo
  2. Spazio tabella utente
  3. Spazio tabella temporaneo

Catalog tablespace: Contiene le tabelle del catalogo di sistema per il database. È denominato SYSCATSPACE e non può essere eliminato.

User tablespace: Questo tablespace contiene tabelle definite dall'utente. In un database, abbiamo un tablespace utente predefinito, denominato USERSPACE1. Se non specifichi lo spazio tabelle definito dall'utente per una tabella al momento della creazione, il gestore database sceglie lo spazio tabelle utente predefinito per te.

Temporary tablespace: Uno spazio tabella temporaneo contiene dati tabella temporanei. Questo spazio tabelle contiene spazi tabelle temporanei di sistema o spazi tabelle temporanei utente.

Lo spazio tabella temporaneo di sistema contiene i dati temporanei richiesti dal gestore database durante l'esecuzione di operazioni come ordinamenti o join. Un database deve avere almeno uno spazio tabella temporaneo di sistema ed è denominato TEMPSPACE1. Viene creato al momento della creazione del database. Lo spazio tabelle temporaneo dell'utente contiene i dati temporanei dalle tabelle. Viene creato con l'istruzione DECLARE GLOBAL TEMPORARY TABLE o CREATE GLOBAL TEMPORARY TABLE. Questo spazio tabella temporaneo non viene creato per impostazione predefinita al momento della creazione del database.

Tablespaces and storage management:

Gli spazi tabella possono essere configurati in diversi modi, a seconda di come li si desidera utilizzare. È possibile configurare il sistema operativo per gestire l'allocazione dello spazio tabella, lasciare che il gestore database allochi lo spazio oppure scegliere l'allocazione automatica dello spazio tabella per i dati.

Sono disponibili i seguenti tre tipi di spazi gestiti:

System Managed Space (SMS): Il gestore del file system del sistema operativo alloca e gestisce lo spazio in cui è archiviata la tabella. Lo spazio di archiviazione viene assegnato su richiesta. Questo modello è costituito da file che rappresentano oggetti di database. Questo tipo di tablespace è stato deprecato nella versione 10.1 per i tablespace definiti dall'utente e non è deprecato per il catalogo e i tablespace temporanei.

Database Managed Space (DMS): Il server database controlla lo spazio di archiviazione. Lo spazio di archiviazione viene preallocato sul file system in base alla definizione del contenitore specificata quando si crea il tablespace DMS. È deprecato dalla versione 10.1 fix pack 1 per i tablespace definiti dall'utente, ma non è deprecato per il tablespace di sistema e il tablespace temporaneo.

Automatic Storage Tablespace: Il server database può essere gestito automaticamente. Il server di database crea ed estende i contenitori in base ai dati sul database. Con la gestione della memoria automatica, non è necessario fornire le definizioni del contenitore. Il server del database si occupa della creazione e dell'estensione dei contenitori per utilizzare lo spazio di archiviazione assegnato al database. Se si aggiunge spazio di archiviazione a un gruppo di archiviazione, vengono creati automaticamente nuovi contenitori quando il contenitore esistente raggiunge la capacità massima. Se si desidera utilizzare immediatamente lo spazio di archiviazione appena aggiunto, è possibile ribilanciare lo spazio tabella.

Page, table and tablespace size:

DMS temporaneo e spazi tabelle di archiviazione automatica, la dimensione della pagina scelta per il database determina il limite massimo per la dimensione dello spazio tabella. Per gli SMS di tabella e gli spazi tabella di archiviazione automatica temporanea, la dimensione della pagina limita la dimensione della tabella stessa. Le dimensioni della pagina possono essere 4kb, 8kb, 16kb o 32kb.

Tipo di tablespace Limite di dimensione della pagina 4K Limite di dimensione pagina 8K Limite di dimensione pagina 16 KB Limite di dimensione pagina 32 KB
DMS, tablespace di archiviazione automatica non temporanea regolare 64G 128G 256G 512G
DMS, DMS temporaneo e table space di archiviazione automatica non temporanea di grandi dimensioni 1892G 16384G 32768G 65536G