HASH-PARTITIONED TABLES

HASH-PARTITIONED TABLES
  • 5
    Set

HASH-PARTITIONED TABLES

twittergoogle_pluslinkedin

La clausola di partizione di tipo hash nell’istruzione di CREATE TABLE identifica e crea la tabella con questa
caratteristica. La clausola accetta il numero di partizioni che possono essere utilizzate e, facoltativamente, i
file di memoria dove salvare i dati (tablespace). In alternativa, è possibile utilizzare la clausola di partizione
per nominare individualmente le partizione e le loro tablespace.

L’unico attributo da specificare per tale partizioni è TABLESPACE. Tutte le partizioni di tipo hash devono
condividere gli stessi attributi del segmento (eccetto TABLESPACE), che vengono ereditate a livello di
tabella.

Quando utilizzare tale partizionamento:
essa è utile quando non vi è alcun intervallo di partizionamento che potrà causare distribuzione non
uniforme dei dati. Il numero di partizioni deve essere una potenza di 2 (2, 4, 8, 16 …) e può essere
specificata dal PARTITIONS … STORE IN clausola, come nell’esempio di seguito:

CREATE TABLE clothes
(clo_number NUMBER NOT NULL,
clo_date DATE NOT NULL,
clo_note VARCHAR2(100)
)
TABLESPACE users COMPRESS NOLOGGING
PARTITION BY HASH (clo_date)
PARTITIONS 2
STORE IN (users, users );
come abbiamo detto c’è anche la possibilità di specificare singolarmente le partizioni e l’area di memoria
che le devono ospitare:
CREATE TABLE clothes
(clo_number NUMBER NOT NULL,
clo_date DATE NOT NULL,
clo_note VARCHAR2(100)
)

TABLESPACE users COMPRESS NOLOGGING
PARTITION BY HASH (clo_date)
(PARTITION p_winter VALUES LESS THAN (TO_DATE('21/03/2016', 'DD/MM/YYYY')) TABLESPACE users,
PARTITION p_spring VALUES LESS THAN (TO_DATE('21/06/2016', 'DD/MM/YYYY')) TABLESPACE users,
PARTITION p_summer VALUES LESS THAN (TO_DATE('21/09/2016', 'DD/MM/YYYY')) TABLESPACE users,
PARTITION p_fall VALUES LESS THAN (TO_DATE('21/12/2016', 'DD/MM/YYYY')) TABLESPACE users,
PARTITION p_others VALUES LESS THAN (MAXVALUE) TABLESPACE users
);

Scaricare lo script che contiene lo scenario visto:
HASH-PARTITIONED TABLES – script.sql

Attorno allo scenario delle partizioni:
– Collegamento alle altre partizioni già trattate:
– HASH-PARTITIONED TABLES (articolo di Novembre)
– LIST-PARTITIONED TABLES e REFERENCE-PARTITIONED TABLES (articolo di Ottobre)
– INTERVALPARTITIONING (articolo di Settembre)
– Tale aspetto organizzativo offre la possibilità a tabelle e indici di essere suddivise in singole parti.
Queste singole parti si chiamano appunto partizioni. Una partizione ha un suo nome e una sua
caratteristica di archiviazione dei dati. Dal punto di vista di un amministratore di una base di dati
l‘oggetto ‘partizione’ è costituito da molteplici parti che possono essere organizzati singolarmente
oppure tutti insieme.

Il presente articolo non tratta il seguente punto:
– Partizione di tabelle composte
– Range-partitioned tables con global indexes