Vous êtes sur la page 1sur 27

Grer les objets de schma

Copyright 2006, Oracle. Tous droits rservs.

Objectifs

Types de table Partitionne Organise en index Clusterise Tches DBA

A la fin de ce chapitre, vous pourrez grer les objets de schma et : dterminer les types de table appropris en fonction des besoins : table organise en "heaps", partitionne, organise en index ou clusterise effectuer les tches d'administration associes :
valuer la taille des nouvelles tables analyser les tendances de croissance grer les statistiques destines l'optimiseur rorganiser les objets de schma en ligne

10-2

Copyright 2006, Oracle. Tous droits rservs.

Types de table
Organise en "heaps" Type Description Clusterise

Table ordinaire (organise en "heaps")


Table partitionne Table organise en index Table clusterise

Les donnes sont stockes sous la forme d'un ensemble non tri (heap).
Les donnes sont subdivises en lments plus petits, plus faciles grer.
Les donnes (y compris les valeurs autres que les valeurs de cl) sont tries et stockes dans une structure d'index B*Tree.

Les donnes associes d'une ou plusieurs tables sont stockes ensemble.

Partitionne
10-3

Organise en index
Copyright 2006, Oracle. Tous droits rservs.

Qu'est-ce qu'une partition et pourquoi l'utiliser

Types de table > Partitionne Organise en index Clusterise Tches DBA

Une partition est : une partie d'une table ou d'un index de trs grande taille stocke dans son propre segment utilise pour amliorer les performances et faciliter la gestion

10-4

Copyright 2006, Oracle. Tous droits rservs.

Partitions
Les caractristiques des partitions sont les suivantes : Leurs attributs logiques sont identiques : mmes colonnes, mmes contraintes et mmes index. Leurs attributs physiques sont distincts : elles sont stockes dans des tablespaces diffrents. Elles sont transparentes pour les applications. Plusieurs mthodes de partitionnement sont possibles.

10-5

Copyright 2006, Oracle. Tous droits rservs.

Crer une partition

10-6

Copyright 2006, Oracle. Tous droits rservs.

Mthodes de partitionnement
Partitionnement par plage : rpartit les lignes en fonction de plages logiques dans les valeurs d'une colonne - par exemple, les mois dans une anne. Partitionnement par hachage : rpartit les lignes en fonction de la valeur de hachage (hash value) de la cl de partitionnement. Partitionnement par liste : rpartit les lignes en fonction d'une liste de valeurs discrtes, fournie par l'administrateur de base de donnes. Partitionnement par plage et par hachage : rpartit les lignes en utilisant tout d'abord un partitionnement par plage puis, pour chaque partition obtenue, un partitionnement par hachage. Partitionnement par plage et par liste : rpartit les lignes en utilisant tout d'abord un partitionnement par plage puis, pour chaque partition obtenue, une liste de valeurs discrtes.
Copyright 2006, Oracle. Tous droits rservs.

10-7

Maintenance des partitions

10-8

Copyright 2006, Oracle. Tous droits rservs.

Tables organises en index

Types de table Partitionne > Organise en index Clusterise Tches DBA

Accs une table ordinaire

Accs une table organise en index

Accs la table par ROWID

Colonnes autres que les colonnes de cl Colonne de cl En-tte de ligne


10-9

Copyright 2006, Oracle. Tous droits rservs.

Tables organises en index et tables des "heaps"


En comparaison avec les tables des "heaps", les tables organises en index : offrent un accs sur cl plus rapide aux donnes de la table ne dupliquent pas le stockage des valeurs de cl primaire ncessitent moins d'espace de stockage utilisent des index secondaires et des row ID logiques offrent une meilleure disponibilit car la rorganisation des tables n'entrane pas l'invalidation des index secondaires Les tables organises en index prsentent les restrictions suivantes : Elles doivent prsenter une cl primaire qui n'est pas DEFERRABLE.
Elles ne peuvent pas tre clusterises. Elles ne peuvent pas utiliser le partitionnement composite. Elles ne peuvent pas contenir de colonne de type ROWID ou LONG.

10-10

Copyright 2006, Oracle. Tous droits rservs.

Crer des tables organises en index


SQL> CREATE TABLE country 2 ( country_id CHAR(2) 3 CONSTRAINT country_id_nn NOT NULL, 4 country_name VARCHAR2(40), 5 currency_name VARCHAR2(25), 6 currency_symbol VARCHAR2(3), 7 map BLOB, 8 flag BLOB, 9 CONSTRAINT country_c_id_pk 10 PRIMARY KEY (country_id)) 11 ORGANIZATION INDEX 12 TABLESPACE indx 13 PCTTHRESHOLD 20 14 OVERFLOW TABLESPACE users;
10-12

Copyright 2006, Oracle. Tous droits rservs.

Clusters
ORD_NO ----101 102 102 102 101 101 PROD -----A4102 A2091 G7830 N9587 A5675 W0824 QTY -----20 11 20 26 19 10 ...

Types de table Partitionne Organise en index > Clusterise Tches DBA


Cluster Key (ORD_NO) 101 ORD_DT 05-JAN-97 PROD A4102 A5675

CUST_CD R01 QTY 20 19

ORD_NO -----101 102

ORD_DT CUST_CD ----------05-JAN-97 07-JAN-97

W0824 10 102 ORD_DT CUST_CD 07-JAN-97 N45 PROD QTY A2091 11 R01 G7830 20 N45 N9587 26

Tables orders et order_item non clusterises


10-13

Tables orders et order_item clusterises

Copyright 2006, Oracle. Tous droits rservs.

Types de cluster

Cluster index

Cluster hash

Cluster hash tri Fonction de hachage

Fonction de hachage

1 2 3

10-14

Copyright 2006, Oracle. Tous droits rservs.

Situations dans lesquelles les clusters sont utiles


Critre Rpartition uniforme des cls Valeurs de cl galement rparties Cl rarement mise jour Tables matre-dtail souvent jointes Nombre de valeurs de cl prvisible Interrogations utilisant un prdicat d'galit sur la cl Cluster index Cluster hash Cluster hash tri

Donnes extraites dans l'ordre de leur insertion

10-16

Copyright 2006, Oracle. Tous droits rservs.

Cluster hash tri : Prsentation


Nouvelle structure de donnes utilise pour stocker les donnes tries selon les colonnes de cl non primaire :
Les valeurs des cls de cluster font l'objet d'un hachage. Les lignes correspondant une valeur de cl de cluster particulire sont tries selon la cl de tri.

Un tel cluster est utilis pour garantir que les lignes sont renvoyes dans l'ordre appropri lors des interrogations, sans tri des donnes :
Les lignes sont renvoyes par ordre croissant ou dcroissant pour une valeur de cl de cluster particulire. La clause ORDER BY n'est pas obligatoire pour extraire les lignes par ordre croissant.

10-17

Copyright 2006, Oracle. Tous droits rservs.

Cluster hash tri : Exemple


CREATE CLUSTER calls_cluster ( origin_number NUMBER Cl de cluster , call_timestamp NUMBER SORT Cl de tri , call_duration NUMBER SORT) HASHKEYS 10000 SINGLE TABLE HASH IS origin_number SIZE 50; CREATE TABLE calls ( origin_number NUMBER , call_timestamp NUMBER , call_duration NUMBER , other_info VARCHAR2(30)) CLUSTER calls_cluster( origin_number,call_timestamp,call_duration );
10-18

Copyright 2006, Oracle. Tous droits rservs.

Cluster hash tri : Architecture de base


SIZE Cl de cluster 1 HASHKEYS Cl de cluster 2 Cl de cluster n Points de dpart de la chane de blocs

Lignes tries selon la cl de tri dans chaque chane de blocs

10-19

Copyright 2006, Oracle. Tous droits rservs.

Tches de gestion des schmas

Types de table Partitionne Organise en index Clusterise > Tches DBA

L'administrateur de base de donnes est en charge des oprations suivantes : valuer la taille des nouvelles tables analyser les tendances de croissance grer les statistiques destines l'optimiseur rorganiser les objets de schma en ligne

10-20

Copyright 2006, Oracle. Tous droits rservs.

Evaluer l'utilisation des ressources

10-21

Copyright 2006, Oracle. Tous droits rservs.

Analyser les tendances de croissance


Etat EM de tendance de croissance : Utilis par Segment Advisor Statistiques d'utilisation de l'espace collectes dans le rfrentiel AWR

10-22

Copyright 2006, Oracle. Tous droits rservs.

Grer les statistiques destines l'optimiseur


3 2

Non analys
10-23

Copyright 2006, Oracle. Tous droits rservs.

Rorganiser les objets de schma en ligne


Modification de la structure logique ou physique d'un objet de schma, tel qu'une table ou un index Opration transparente pour les utilisateurs Besoins en termes d'espace

10-24

Copyright 2006, Oracle. Tous droits rservs.

Rorganiser les objets : Page Impact Report

10-26

Copyright 2006, Oracle. Tous droits rservs.

Rorganiser les objets : Page Review

10-27

Copyright 2006, Oracle. Tous droits rservs.

Etapes de base de la rorganisation manuelle en ligne


1. Vrifiez que la table est candidate la rorganisation en ligne. 2. Crez une table temporaire. 3. Lancez le processus de redfinition. 4. Copiez les objets dpendants. (Cette opration cre automatiquement les dclencheurs, les index, les privilges et les contraintes associs la table temporaire.) 5. Interrogez la vue DBA_REDEFINITION_ERRORS pour contrler les erreurs. 6. Si vous le souhaitez, synchronisez la table temporaire. 7. Terminez la redfinition. 8. Supprimez la table temporaire.
10-28

Copyright 2006, Oracle. Tous droits rservs.

Synthse

Ce chapitre vous a permis d'apprendre grer les objets de schma et : dterminer les types de table appropris en fonction des besoins effectuer les tches d'administration associes :
valuer la taille des nouvelles tables analyser les tendances de croissance grer les statistiques destines l'optimiseur rorganiser les objets de schma en ligne

10-29

Copyright 2006, Oracle. Tous droits rservs.

Prsentation de l'exercice : Grer les objets de schma


Cet exercice porte sur les points suivants : surveiller l'espace utilis par les tables et les index grer les statistiques destines l'optimiseur rorganiser des tables et des index

10-30

Copyright 2006, Oracle. Tous droits rservs.

Vous aimerez peut-être aussi