-
Segments et extents
Bonjour tout le monde,
Au niveau de la structure logique de Oracle,
je vois qu'il y a : table space, segements et extents et blocs de données
Ce que je ne comprend pas c'est pourquoi tout ce découpage ?
Je me suis dit peut être qu'en avançant je trouverais des fonctionnalités liées à cette décomposition logique...
Mais pourriez-vous comeme m'éclaircire un peu les choses sur cette histoire.
Merci d'avance
-
LOL
tu peux appronfondir ta question. Par ce que la c un peu comme qu'est ce que l'univers.
-
Ben je dirais, que pour les tablespaces j'ai bien compris leurs intérêts,
C'est une façon de classer les données logiquement.
Le DICO est dans un tablsespace à part.
Les fichiers de données sont à mettre dans un autre tablespaces.
Et de même pour les fichiers de journalisassions en ligne.
Cette séparation permet à Oracle de ne pas mélangé les données, chose qui facilitera leurs extraction quand on les cherchent...
Et l peu y avoir d'autres avantages pour les tablespaces.
Mais mon problème c'est que je ne trouve pas des arguments de ce genre pour justifier l'existence des segments et des extents...
S'ils sont là c'est qu'il y a interet :roll:
j'espère que je ne parle pas toujours de l'univers..
:D
-
Alors pour les extents et les segments.
Un segment c'est un objet qui occupe de la place (genre table, index,etc etc) Ce segment est quand à lui composé de plusieur extents qui composent l'objet lui meme (correspond au initial et aux nexts)
Est ce que tu comprends mieux?
-
Oui, ça je l'es bien compris
Mais la définition que je trouve dans ma doc... :!:
Mais aprés ça, il y a quoi :?: , ils nous apportent quoi comme avanatge... :?:
il y avais des choses à dire pour les table space comeme...
alors je me dis que c'est le cas pour les segements ou les extents :(
-
Ce découpage en "briques" permet naturellement la gestion et la réutilisation des espaces, un peu comme la gestion des blocs d'un système de fichier au niveau du système d'exploitation.
-
C'est tout à fait cela, mes explications sont très légères mais il y a beaucoup à dire. Les segments correspondent à une gestion de l'espace disque différentes des extents. Un segment peut etre composé de beaucoup d'extent qui eux nécessite une gestion différentes des segments.
-
Donc tout ce qu'on peu dire c'est que ce découpage est utile à l'optimisation de l'espace disque....
Mais le comment, il y a uniquement les gens qui ont développez Oracle qui le savent.
car apparemment ce genre d'info dévoilent certains aspects sur noyau du SGBD qui sont sensé resté cachées.
:)
-
non non, rien n'est caché mais c'est assez complex ;)
-
OK, donc je vais patienté un peu le temps d'arrivé à cette partie :pc:
Merci
-
Bon bon, je vais essayer d'apporter ma pierre, reste à voir si elle sera éclairante...
On peut examiner une base de données à différents niveaux (physique ou logique), et avec un zoom plus ou moins puissant, suivant le niveau de détail utile.
D'un point de vue organisation logique, on a des tablespaces qui contiennent des segments. Un segment est un terme générique pour les "objets" qui occupent de l'espace de stockage. Un segment peut être soit une table, soit un index, soit un segment d'annulation, soit un segment temporaire.
Parler de segment, c'est considérer un objet sans se préoccuper de sa décomposition interne. C'est comme quand on parle d'un train : on ne s'intéresse pas forcément au nombre de wagons qui le composent.
Ensuite, on peut s'intéresser plus en détail à l'espace de stockage occupé par un segment, et à la manière dont cet espace s'agrandit.
Un extent, ou une extension en français compréhensible, c'est une quantité d'espace allouée en une seule fois à un segment. Quand une table s'agrandit, on doit faire des extensions d'espace successives. Les extensions d'un même segment n'ont pas forcément toutes la même taille; cela se paramètre.
Quand on force le zoom, on en arrive au bloc. Il est couramment de 4 ou 8 Ko. Une extension est constituée d'un certain nombre de blocs.
Un bloc doit être suffisamment grand pour pouvoir accueillir une ligne de données complète.
De manière générale, on n'a pas besoin d'intervenir au niveau du bloc, c'est de la gestion interne d'Oracle.
Le bloc, c'est l'unité de lecture/écriture d'Oracle. C'est à dire qu'Oracle lit les données sur disque bloc par bloc (ou par groupes de quelques blocs selon certains paramètres et les effets de cache). Il ne lit pas des extensions complètes, qui peuvent être de très grande taille, et encore moins des segments complets, à moins qu'on ait besoin expressément de toutes les données.
-
Je dirais c'est plus claire comeme, mais j'ai besoin aussi de voir ce qu'il y a comme fonctionnalité liées à ce découpage pour bien comprendre la chose...
Car parfois il y a des choses à accepter par définitions, mais je vous en direz plus dans quelques jours..
Merci bien
:)