Example create index organized table

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus d'exemple
Domaine Exemple DDL
Voir aussi Example create index · Example create emp dept custom

Example create index organized table montre comment créer une Index Organized Table (IOT) : une table dont les lignes sont physiquement stockées triées par clé primaire, dans une structure de B-Tree, au lieu d'un tas (heap) classique associé à un index séparé. Utile pour des tables consultées presque exclusivement par leur clé primaire, où l'on veut éviter le coût d'un accès table + index séparé.

Le script propose deux variantes : une IOT créée "à vide", et une IOT peuplée directement à partir d'une table existante (CREATE TABLE ... AS SELECT, en s'appuyant sur le schéma emp décrit dans Example create emp dept custom).

Script

-- Index Organized Table (IOT) : lignes stockées triées par clé primaire

/* ------------------------- IOT SIMPLE ------------------------- */

DROP TABLE my_iot
/

CREATE TABLE my_iot (
      id        NUMBER
    , name      VARCHAR2(100)
    , hiredate  DATE
    , CONSTRAINT my_iot_pk PRIMARY KEY (id)
)
ORGANIZATION INDEX
OVERFLOW TABLESPACE users
/

/* ------------- IOT CRÉÉE PAR SELECT DEPUIS UNE AUTRE TABLE ------------- */

DROP TABLE my_iot_from_table
/

CREATE TABLE my_iot_from_table (
    emp_id
  , dept_id
  , name
  , date_of_birth
  , date_of_hire
  , monthly_salary
  , position
  , extension
  , office_location
  , CONSTRAINT my_iot_from_table_pk PRIMARY KEY (emp_id)
)
ORGANIZATION INDEX
OVERFLOW TABLESPACE users
AS
SELECT * FROM emp
/

La clause OVERFLOW TABLESPACE permet de stocker dans un tablespace séparé les colonnes qui dépassent la taille de bloc réservée à la partie indexée — utile pour les IOT contenant des colonnes larges.

Voir aussi