Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/04/2008, 09h41   #1
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Par défaut Augmentation soudaine de la taille des tables

Bonjour

J'ai eu un souci sur 2 de mes tables de ma base Oracle. Du jour au lendemain leur taille ont été mulitpliées par 40:
Citation:
TABLE_NAME 22.03.2008 23.03.2008
----------- ---------- ----------
BKCPTDOS 38 1816
BKEVE 112 4296
Pourtant celles-ci n'ont pas subi d'insert à outrance. J'ai également vérifié la taille des index, ils n'ont quasiment pas bougé, il s'agit donc bien des données qui ont augmentées subitement:

Citation:
INDEX_NAME 22.03.2008 23.03.2008
----------- ---------- ----------
I0_BKCPTDOS 50.8 50.9
I0_BKEVE 2.1 2.6
I1_BKCPTDOS 39.8 39.9
I2_BKCPTDOS 25.0 25.3
I2_BKEVE 2.1 2.8
I3_BKEVE 2.5 3.1
I6_BKEVE 2.3 2.9
I7_BKEVE 2.3 2.8
I8_BKEVE 2.3 2.9
I97_BKEVE 2.9 3.5
I98_BKEVE 1.5 1.8
I99_BKEVE 1.4 1.6
Le fait de reconstruire les tables a suffi pour faire retomber la taille, mais le problème demeure, qu'est-ce qui peut bien provoquer un tel comportement ?
Quelqu'un aurait-il déjà rencontré ce problème ? Et si oui quelle pourrait en être la cause ?
Merci d'avance pour toute réponse qui pourra être apportée.

Cordialement
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h01   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
n'y a-t-il pas eu des UPDATE ? De toute façon, il y a forcément eu quelque chose, la première étape est de trouver quoi
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h07   #3
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Salut

Le traitement sur ces tables est quasiment le même tous les jours, des insert des delete en grande partie. Mais en tout cas pas d'update sur toute la table.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h18   #4
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
verifiez s'il y a un trigger pour cette table
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h23   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Insert, delete... Normal que ça augmente.
Pour les indexes, ils sont pas recréés par hasard ?
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h50   #6
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Bonjour

Oui il y a des triggers, non les index ne sont pas recréés.
Ce qu'il faut savoir c'est que le nombre d'enregistrements des tables n'augmente pas significativement à l'image de sa taille. Il est donc bizzare de voir la taille de la table augmenter (*40 !!) sans aucune raison apparente.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 11h57   #7
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
il suffit d'avoir fait un bon dans le NEXT EXTENT à cause de l'AUTOALLOCATE notamment
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 12h05   #8
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Hum ça m'intéresse ça.
Ce que tu dis c'est qu'au bout d'un certain nombre d'enregistrements il passerait d'une taille par enregistrement à une plus grande ou quelque chose comme ça ?
Tu peux m'en dire plus stp ? Comment vérifer tout ça. Je ne suis malheureusement pas un expert Oracle; en tout cas ça expliquerait ce qu'il se passe.
Merci d'avance
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 12h40   #9
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Code :
1
2
3
SELECT initial_extent, next_extent, blocks
FROM user_tables
WHERE table_name = 'BKCPTDOS'
En fait ta table prend une certaine place (nb de blocks), même vide.
Ensuite à chaque insert, oracle remplit cet espace.
Quand il est plein, il réalloue "NEXT_EXTENT" à ta table
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 13h20   #10
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Merci beaucoup !
Je check si ça correspond (ça risque de prendre un moment car la base en question n'est pas chez moi mais chez un de mes clients) et je vous tiens au courant. Je cliquerai sur 'résolu' si la réponse lui satisfait.
Merci encore.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 13h25   #11
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Citation:
Le fait de reconstruire les tables a suffi pour faire retomber la taille
Si les tables ont été recréées à l'identique c'est bon, sinon, tu ne sauras pas quelle était l'ancien NEXT_EXTENT
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 13h33   #12
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Très bonne remarque en effet. Logiquement elles sont reconstruites à l'identique mais je note quand même.
Sinon, question subsidiaire, comment interprêter les résultats qui seront fournis par la requête ? Les tailles (pour la première table) étant du jour au lendemain: 38 et 1816, j'imagine qu'il serait bien de voir genre 40 et 1800 (environ) pour les valeurs de initial_extent et next_extent, ou bien est-ce que ça marche autrement ? (coefficient blocks à prendre en compte peut-être ?)
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 13h48   #13
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Tiens d'ailleurs, qu'elle est la requête qui te donne tes résultats ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 14h03   #14
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Pour être honnête je n'en sais rien, c'est le client qui m'a fourni directement les tailles.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 14h34   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Bah faudrait peut-être commencer par savoir ce que c'est non ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 14h42   #16
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
J'aurais tendance à dire qu'importe en fait; l'information essentielle est que cette taille augmente significativement en un instant, donc l'explication de l'extend parait convenir à merveille. Maintenant le requête exacte qui donne la taille de la table et ses index je n'en sais rien (l'info vient du client) mais bien entendu je peux demander.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 14h47   #17
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
bah non pas peu importe... si c'est la taille du NEXT et non la taille moyenne des segments ou si c'est la taille des tablespaces ou celles des blocks ou que sais-je encore c'est complètement différent
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 14h50   #18
Invité de passage
 
Inscription : avril 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 17
Points : 1
Points : 1
Arf
Encore une fois, je ne suis pas expert Oracle
Bon en tout cas je demande l'info; je donne suite dès que j'ai la réponse.
tristan_37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 15h40   #19
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 459
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 459
Points : 4 226
Points : 4 226
Tant que c'est pas le nb de lignes, ça va.

Les extents (initial et next ) sont en Octets
ex 65536 = 64 Ko

Code :
1
2
3
SELECT VALUE
FROM v$parameter
WHERE NAME = 'db_block_size'
Te donne le nb d'octets par blocks
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 17h03   #20
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
Je suppose d'après la conversation que quand tu dis *40, ce n'est pas le nombre d'enregistrements, mais la taille physique ?
OK, mais dans ce cas, faudrait vraiment être un tocard pour mettre un next extent 40 fois plus gros que l'initial ! Ou une pctincrease à 4000 !!!

Ou ton client a inséré plein de données dans sa table, puis les a deleté, n'imaginant même pas que l'espace alloué le temps de sa bidouille n'a pas pu être restitué (TRUNCATE ou DROP nécessaire). Et du coup, ne t'en a même pas parlé...

Mais ce ne sont que des suppositions (aussi bien sur l'éventuel tocard que l'éventuelle bidouille...)
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h14.


 
 
 
 
Partenaires

Hébergement Web