9 - Free

publicité
Structure de stockage et relations
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous pourrez :
• décrire la structure logique de la base de données
• énumérer les types de segment et leur utilisation
• énumérer les mots-clés qui gèrent l'utilisation de
l'espace de bloc
• obtenir des informations sur les structures de
stockage à partir du dictionnaire de données
9-2
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Structure de stockage et relations
Base de données
PROD
TABLESPACES
SYSTEM
FICHIERS DE DONNEES
DISK1/SYS1.dbf
SEGMENTS
Table
D.D.
USER_DATA
DISK2/
USER1.dbf
S_DEPT
S_EMP
Index
D.D.
DISK3/
USER2.dbf
S_DEPT S_EMP
(suite)
RBS
DISK1/
ROLL1.dbf
RBS1
RBS2
FIRST_N
AME
RBS1
RBS2
(suite)
(suite)
Seg
RB
Seg
RB
DISK1/
TEMP.dbf
Temp
Index
Seg
Seg
Seg
Seg
Seg données données
données Index RB
Seg
Data
Seg
Index
Seg
RB
Seg
RB
EXTENTS
1 2 1 2 1 2 1 1 2 2 1 DISPO 1 1 2 2 1
BLOCS DE DONNEES Oracle
9-3
TEMP
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Seg
Temp
Types de segment
9-4
Table
Partition
de table
Cluster
Index
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Types de segment
9-5
Table organisée
en index
Partition
d'index
Segment
d'annulation
Segment
temporaire
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Types de segment
Segment
LOB
Table
imbriquée
Segment de
bootstrap
9-6
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Priorité des clauses de stockage
Valeur Oracle par défaut
Tablespace
Segment
9-7
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Allocation et libération d'extents
• Un extent est une tranche d'espace utilisée par un
segment dans un tablespace.
• Un extent est alloué lorsqu'un segment est :
– créé
– étendu
– modifié
• Un extent est libéré lorsqu'un segment est :
– supprimé
– modifié
– vidé
9-8
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Extents utilisés et extents libres
Fichier de données
En-tête
de fichier
9-9
Extent utilisé
Extent libre
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Bloc de base de données
• Unité minimum d'E/S
• Comprend un ou plusieurs blocs du système
d'exploitation
• Est défini à la création d'un tablespace
• DB_BLOCK_SIZE détermine la taille de bloc par
défaut
9-10
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Support de plusieurs tailles de bloc
• Il est possible de créer une base de données avec
une taille de bloc standard et jusqu'à quatre tailles
de bloc non standard.
• Les tailles de bloc peuvent être égales à toute
puissance de deux comprise entre 2 et 32 Ko.
9-11
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Taille de bloc standard
• Elle est définie à la création de la base de données à
l'aide du paramètre DB_BLOCK_SIZE. Pour la
modifier, il est nécessaire de recréer la base de
données.
• Elle est utilisée par les tablespaces SYSTEM et
TEMPORARY.
• DB_CACHE_SIZE indique la taille du cache de
tampons DEFAULT pour une taille de bloc standard.
– Taille minimale = un granule (4 Mo ou 16 Mo)
– Valeur par défaut = 48 Mo
9-12
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Tailles de bloc non standard
• Configurez des caches supplémentaires avec les
paramètres dynamiques suivants :
–
–
–
–
–
DB_2K_CACHE_SIZE pour des blocs de 2 Ko
DB_4K_CACHE_SIZE pour des blocs de 4 Ko
DB_8K_CACHE_SIZE pour des blocs de 8 Ko
DB_16K_CACHE_SIZE pour des blocs de 16 Ko
DB_32K_CACHE_SIZE pour des blocs de 32 Ko
• DB_nK_CACHE_SIZE n'est pas autorisé
si nK est la taille de bloc standard
• Taille minimale de chaque cache : un granule
9-13
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Créer des tablespaces de taille
de bloc non standard
CREATE TABLESPACE tbs_1
DATAFILE 'tbs_1.dbf'
SIZE 10M BLOCKSIZE 4K;
DESCRIBE dba_tablespaces
Name Null? Type
------------------ -------- -----------TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
...
9-14
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Règles relatives à l'utilisation
de plusieurs tailles de bloc
• Toutes les partitions d'un objet doivent résider dans
des tablespaces ayant la même taille de bloc.
• Tous les tablespaces temporaires, y compris les
tablespaces permanents utilisés comme
tablespaces temporaires par défaut, doivent utiliser
la taille de bloc standard.
• Les segments de débordement d'une table
organisée en index et les segments LOB en dehors
de la ligne peuvent être stockés dans un tablespace
ayant une taille de bloc différente de celle de la table
de base.
9-15
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Contenu d'un bloc de base de données
En-tête
Espace libre
Données
9-16
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Paramètres d'utilisation
de l'espace de bloc
INITRANS
MAXTRANS
PCTFREE
PCTUSED
9-17
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Gestion des blocs de données
Vous disposez de deux méthodes pour gérer les blocs
de données :
• Gestion automatique de l'espace de segment
• Gestion manuelle
9-18
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Gestion automatique
de l'espace de segment
• Cette méthode permet de gérer l'espace libre des
segments de base de données.
• Le suivi de la quantité d'espace libre et utilisé dans
les segments s'effectue à l'aide de bitmaps et non
de listes de blocs libres.
• Cette méthode :
– facilite la gestion
– permet une meilleure utilisation de l'espace
– améliore les performances des opérations INSERT
simultanées
• Restriction : Elle ne peut pas être utilisée pour les
tablespaces qui contiendront des LOB.
9-19
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Gestion automatique
de l'espace de segment
• Les segments bitmap contiennent un bitmap qui
indique le statut de chaque bloc dans le segment
par rapport à son espace disponible.
• La représentation des blocs est contenue dans un
ensemble de blocs particulier, appelés "blocs
bitmap" (BMB).
• Lorsque vous insérez une ligne, le serveur
recherche dans la représentation des blocs un bloc
disposant d'un espace suffisant.
• Lorsque la quantité d'espace disponible d'un bloc
varie, le nouveau statut de ce dernier est indiqué
dans le bitmap.
9-20
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Configurer la gestion automatique
de l'espace de segment
• Vous ne pouvez activer la gestion automatique de
l'espace de segment qu'au niveau tablespace pour
les tablespaces gérés localement.
CREATE TABLESPACE data02
DATAFILE ‘/u01/oradata/data02.dbf’ SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K
SEGMENT SPACE MANAGEMENT AUTO;
• Une fois qu'un tablespace est créé, les
spécifications s'appliquent à tous les segments
créés dans le tablespace.
9-21
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Gestion manuelle des blocs de données
• Permet de configurer manuellement les blocs de
données à l'aide de paramètres tels que :
– PCTFREE
– PCTUSED
– FREELIST
• Seule méthode disponible dans les versions
antérieures d'Oracle
9-22
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Utilisation de l'espace de bloc
PCTFREE=20
PCTUSED=40
Insertions
Insertions
80 %
(en dehors de la liste
de blocs libres)
1
Insertions
2
80 %
40 %
3
9-23
Insertion
(dans la liste
de blocs libres)
4
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Obtenir des informations sur le stockage
Pour obtenir des informations sur le stockage,
interrogez les vues suivantes :
• DBA_EXTENTS
• DBA_SEGMENTS
• DBA_TABLESPACES
• DBA_DATA_FILES
• DBA_FREE_SPACE
9-24
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Synthèse
Ce chapitre vous a permis d'apprendre à :
• utiliser des tablespaces pour :
– séparer des segments afin de faciliter l'administration
– gérer l'allocation d'espace utilisateur
• classer les segments par catégories en fonction du
type d'information qu'ils contiennent
• définir des tailles d'extent à l'aide de la clause de
stockage
• gérer l'utilisation de l'espace de bloc
9-25
Copyright © Oracle Corporation, 2001. Tous droits réservés.
Téléchargement