Bonjour ,
Quand on a le choix entre augmenter la taille d'un datafile d'un tablespace ou rajouter un nouveau datafile ,quel est le meilleur choix ?
Influence du choix sur les perfs ? Contraintes de chacun éventuellement ?
merci
Bonjour ,
Quand on a le choix entre augmenter la taille d'un datafile d'un tablespace ou rajouter un nouveau datafile ,quel est le meilleur choix ?
Influence du choix sur les perfs ? Contraintes de chacun éventuellement ?
merci
Bonjour,
Tout dépend en fait de ton système de stockage.
Mais sincèrement, je pense que de nos jours, cette question n'a plus de sens.
En effet, que tu sois sous Windows avec des disques, ou sous Unix avec des Files Systems, ou encore que tu utilises ASM avec ses Diskgroups, derrière tout cela se cache des systèmes de stockage évolués (NAS et surtout SAN) et des gestionnaires de volumes qui font que tu n'as pas forcément la maitrise du disque, loin de là.
Les perfs sont bonnes, parce qu'on utilise des groupes de disque.
Là où ta question a un sens, c'est si tu avais ta base sur un disque local.
Une fois, j'ai fait un test avec une base 10gR2 sur un PC bureautique sous Windows XP. J'ai créé une table de 5 Go, d'abord dans un tablespace n'ayant qu'un unique datafile, puis la même table dans un tablespace avec 2 datafiles, le tout sur un seul disque physique local.
En faisant un SELECT COUNT (*) de cette table, les perfs étaient dégradées avec 2 datafiles, par rapport à l'utilisation d'un seul datafile.
Normal, avec 2 DBF, au fur et à mesure que la table grossit lors de l'injection des données, Oracle alloue les extents sur les 2 DBF, de manière cyclique.
Du coup, lors du Full Scan de la table, la tête de lecture du disque n'arrêtait pas de se déplacer.
Ce phénomène, tu peux le voir en traçant la session Oracle. Dans le fichier de trace, il faut rechercher les événement d'attente (Wait Events) du type
'db file scattered read' (lecture séquentielle sur disque).
Les 2 infos essentielles sont :
- file# : n° du datafile en lecture
- blocks : nombre de blocs lus
Un exemple :
Avec le file#, tu verras que les lectures s'enchainent en changeant de datafile à chaque fois.WAIT #253042588: nam='db file scattered read' ela= 6410 file#=1 block#=90592 blocks=8 obj#=16 tim=72362519452
Et pour répondre concrètement à ta question, augment plutôt la taille de ton datafile STP.
C'est fini le temps où tu ajoutais un nouveau datafile, que tu allais consciencieusement placé sur tel File System, parce que l'admin système t'avait dit que ce FS n'utilisait pas les mêmes disque que l'autre FS.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager