Instruction SQL CREATE TABLESPACE

Vous trouverez l’ensemble des explication concernant le CREATE TABLESPACE.

La syntaxe de création d’espace table est la suivante :

CREATE





















TABLESPACE nom-tablespace
IN nom-database
using-block
free-block
DEFINE YES/NO
LOGGED | NOT LOGGED
TRACKMOD YES/NO
DSSIZE integer
MAXPARTITIONS integer
MEMBER CLUSTER
NUMPARTS integer
PARTITION integer
using-block
free-block
BUFFERPOOL nom-bp
CCSID ASCII/EBCDIC/UNICODE
CLOSE YES/NO
COMPRESS YES/NO
LOCKMAX integer
LOCKSIZE ANY/TABLESPACE/TABLE/PAGE/ROW
MAXROWS integer
SEGSIZE integer
using-block:




USING
VCAT nom-catalog
STOGROUP nom-stogroup
PRIQTY integer
SECQTY integer
ERASE YES/NO
free-block:
FREEPAGE integer
PCTFREE integer

Explication de la syntaxe :

nom-database : si vous omettez nom-database, la base de données par défaut, DSNDB04, est utilisée. Mais il est conseillé de spécifier la base de données.

USING:

VCAT :
Indique que le premier ensemble de données de l’espace table est géré par l’utilisateur et que les ensembles de données suivants, si nécessaire, sont également gérés par l’utilisateur.

STOGROUPE :
Spécifie le groupe de stockage dans lequel les ensembles de données de l’espace table seront définis et gérés par DB2.

  • PRIQTY : spécifie l’allocation d’espace primaire minimum pour un ensemble de données géré par DB2.
  • SEQQTY : spécifie l’allocation d’espace secondaire minimum pour un ensemble de données géré par DB2.
  • ERASE : Indique si les ensembles de données gérés par DB2 pour l’espace table doivent être effacés lorsque l’espace table correspondant est supprimé.
    NON : Il n’efface pas les ensembles de données. C’est la valeur par défaut.
    OUI : Efface les ensembles de données.

FREEPAGE :
Spécifie la fréquence à laquelle une page d’espace libre doit être laissée lorsque l’espace table est chargé ou réorganisé.

Vous devez spécifier un nombre entier compris entre 0 et 255.

Si vous spécifiez 0, aucune page n’est laissée comme espace libre. Sinon, il reste une page libre toutes les n pages, où n est l’entier spécifié.

PCTFREE :
Indique le pourcentage de chaque page à laisser comme espace libre lorsque l’espace table est chargé ou réorganisé.

L’entier peut aller de 0 à 99.

Le premier enregistrement de chaque page est chargé sans restriction. Lorsque des enregistrements supplémentaires sont chargés, il reste au moins un pourcentage entier d’espace libre sur chaque page.

DEFINE:
Indique à quel moment (quand) les ensembles de données sous-jacents de l’espace table sont physiquement créés.
OUI : les ensembles de données sont créés lors de la création de l’espace table. C’est la valeur par défaut.
NON : les ensembles de données ne sont pas créés tant que les données ne sont pas insérées dans l’espace table. DEFINE NO s’applique uniquement aux ensembles de données gérés par DB2 (spécification USING STOGROUP). DEFINE NO est ignoré pour les ensembles de données gérés par l’utilisateur (spécification USING VCAT).

LOGGED:

  • LOGGED : indique que les modifications apportées aux données dans l’espace table spécifié sont enregistrées dans le journal.
  • NOT LOGGED : indique que les modifications apportées aux données dans l’espace table spécifié ne sont pas enregistrées dans le journal.

TRACKMOD :
Indique si DB2 suit les pages modifiées dans les pages de mappe d’espace de l’espace table.
OUI : suivi. C’est la valeur par défaut.
NON : Non suivi.

DSSIZE :
Spécifie la taille maximale de chaque ensemble de données.

MAXPARTITIONS :
Indique le nombre maximal de partitions dans un espace table partitionné.

MEMBRES CLUSTER :
Spécifie que les données insérées par une « opération d’insertion » ne sont pas mises en cluster par l’index de clustering. Au lieu de cela, DB2 choisit l’emplacement des données dans l’espace table en fonction de l’espace disponible.

Index clusterisé et non clusterisé :
Les index sont organisés selon la structure B-Tree.

Index groupé :

  • Le niveau feuille (le niveau le plus bas de l’arborescence) correspond aux données.
  • Pour une table qui a un index clusterisé, les données sont en fait stockées dans l’ordre de l’index.

Index non clusterisé :

  • La feuille contient des signets vers les données réelles.
  • Les signets des index non clusterisés sont au format RID (Row ID : ID de ligne), c’est-à-dire des pointeurs directs vers l’emplacement physique dans lequel la ligne est stockée.

NUMPARTS :

  • Indique que l’espace table est partitionné.
  • L’entier est le nombre de partitions.

PARTITION:

  • Spécifie à quelle partition s’applique le bloc using ou le bloc free suivant.
  • L’entier peut aller de 1 au nombre de partitions donné par NUMPARTS.

BUFFERPOOL:
Identifie le pool de mémoire tampon à utiliser pour l’espace table.

CCSID :
Spécifie le schéma de codage des tables dans le TS.

CLOSE:
Lorsque la limite du nombre d’ensembles de données ouverts est atteinte, spécifie la priorité dans laquelle les ensembles de données doivent être fermés.
OUI : Éligible pour la fermeture d’ensembles de données. C’est la valeur par défaut.
NON : éligible à la fermeture après la fermeture de tous les ensembles de données CLOSE YES.

COMPRESS : 
Indique si la compression des données s’applique aux lignes de l’espace table.
OUI : spécifie la compression des données.
NON : spécifie aucune compression de données.

LOCKMAX : 
Indique le nombre maximal de verrous de page ou de ligne qu’un processus d’application peut contenir simultanément dans l’espace table.

LOCKSIZE : 
Spécifie la taille des verrous utilisés dans l’espace table.

MAXROWS : 
Indique le nombre maximal de lignes que DB2 envisagera de placer sur chaque page de données.

SEGSIZE :

  • Spécifie que l’espace table sera segmenté.
  • Entier spécifie le nombre de pages à affecter à chaque segment de l’espace table. L’entier doit être un multiple de 4 compris entre 4 et 64 (inclus).

Exemple 1:

Créez l’espace table DSN8S91D dans la base de données DSN8D91A. Laissez DB2 définir les ensembles de données à l’aide du groupe de stockage DSN8G910. L’allocation d’espace primaire est de 52 kilo-octets ; le secondaire, 20 kilo-octets. Les ensembles de données n’ont pas besoin d’être effacés avant d’être supprimés. Le verrouillage des tables dans l’espace doit avoir lieu au niveau de la page. Associez l’espace table au pool de mémoire tampon BP1. Les ensembles de données peuvent être fermés lorsque personne n’utilise l’espace table.

CREATE TABLESPACE DSN8S91D
       IN DSN8D91A
             USING STOGROUP DSN8G910
                            PRIQTY 52
                            SECQTY 20
                            ERASE NO
             LOCKSIZE PAGE
             BUFFERPOOL BP1
             CLOSE YES;

Exemple 2 :

Supposons qu’une grande application de base de données de requêtes utilise un tablespace pour enregistrer les données de ventes historiques pour les statistiques marketing. Créez un grand espace de table SALESHX dans la base de données DSN8D91A pour l’application. Créez-le avec 82 partitions, en spécifiant que les données des partitions 80 à 82 doivent être compressées.

Laissez DB2 définir les ensembles de données pour toutes les partitions de l’espace de table, à l’aide du groupe de stockage DSN8G910. Pour chaque ensemble de données, l’allocation d’espace primaire est de 4 000 kilo-octets et l’allocation d’espace secondaire est de 130 kilo-octets. À l’exception de l’ensemble de données pour la partition 82, les ensembles de données n’ont pas besoin d’être effacés avant d’être supprimés. Le verrouillage sur la table doit avoir lieu au niveau de la page.

Il ne peut y avoir qu’une seule table dans un espace de table partitionné. Associez l’espace de table au pool de mémoire tampon BP1. Les ensembles de données ne peuvent pas être fermés lorsque personne n’utilise l’espace de table. S’il n’y a pas d’ensembles de données CLOSE YES à fermer, DB2 peut fermer les ensembles de données CLOSE NO lorsque le DSMAX est atteint.

CREATE TABLESPACE SALESHX
       IN DSN8D91A
             USING STOGROUP DSN8G910
                            PRIQTY 4000
                            SECQTY 130
                            ERASE NO
             NUMPARTS 82
             (PARTITION 80
             COMPRESS YES,
             PARTITION 81
             COMPRESS YES,
             PARTITION 82
             COMPRESS YES
             ERASE YES)
             LOCKSIZE PAGE

             BUFFERPOOL BP1
             CLOSE NO;