|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 29 ![]() |
Bonjour!
Je travaille sur une base oracle 9.2.0.3 et oracle application 11i ERP(E_Business Suite) Je voudrai bien faire le suivi de l'augmentation de nombres d'enregistrements (lignes) pour chaque table mais sans avoir à préciser leur nom individualement comme dans la rquête suivante : select count(*) from NomDeMatble En fait ,je voudrai bien généraliser cette requête pour toutes les tables (car ma base contient enormément de tables ) et ça sera trop si je dois saisir par nom pour avoir le nombre total des ligne ? Si vous avez une idée oû un script qui pourra m'aider à réaliser cela ,pour ensuite pouvoir mettre cette reqûete ou script en tâche planifiée ! Merci pour votre aide ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Si les stats sont à jours (ce qui est le cas normal sur une base), il vous suffit de faire :
Code :
SELECT table_name ,num_rows FROM dba_tables; |
|
|
00
|
|
|
#3 | |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
Citation:
Le problème n'est pas du tout de devoir citer toutes les tables, mais le temps que ça prendrait d'effectuer physiquement le count(*) sur toutes vos tables. Vous pourriez exécuter le résultat de cette requête : Code :
SELECT 'SELECT COUNT(*) FROM ' || TABLE_NAME || ';' FROM DBA_TABLES WHERE OWNER='&NOM_SCHEMA';
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Je confirme, j'avais fait une fonction avec une vue associée pour faire la même chose et ce n'est pas vraiment optimum.
Dans un cadre temporaire de développement, ça dépanne, surtout quand tu cherches à avoir des infos toutes les 10 minutes. Pour info, ça donnait ça : Code :
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
et surtout faut se poser la question de l'exploitation du résultat... parce que plus de 40000 tables, j'vois pas bien l'intérêt d'avoir une info si excaustive. Tu peux déjà te limiter au 10 ou 20 tables les plus grosses or APPLSYS (ou seulement les requests) et SYS ou SYSTEM.
NUM_ROWS c'est déjà pas mal comme info |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 29 ![]() |
Bonjour !
Je suis tte à fait d'accord avec vous càd viser les plus grosses tables en premier lieu mais si je dois me baser sur le num_rows selon les stats (les plus recement calculées) Quelle serait la fréquence (idéale) de calcul des stats la plus conseillée pour ma base ,car je ne sais pas si c nécessaire de le faire quotiennement ou chaque fin de semaine ! Sachant que nous sommes en ce moment sur une base prod et j'ai peur que la taille des tables augmente rapidement ,ce qui me pousse à avoir une idée globale sur l'évolution du nombre d'enregistrements Merci pour votre collaboration ! |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Il n'y a pas de fréquence idéale absolue, sinon, ça aurait déjà été automatisé !
Mais en 9i, il y a les LIST_STALE et GATHER_STALE sur des tables MONITORING.... |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 29 ![]() |
Enfin, si je vous demande "la fréquence" parapport à votre experience pratique ,quelle serai votre réponse ?
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
sur certaines tables, une fois par migration (8i, 9i, ...), sur d'autres, tous les jours.
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 29 ![]() |
C parfait ,je crois qu'il vaut mieux le faire qotidiennement et comme ça je seari ammener à automatiser ma requête de calcul de (num_rows) en crontab chaque fin de journée ,et ceci me permettra de faire un bon suivi ,car notre administrateur systeme veut avoir une idée globale sur lataille de labase de donnée
Merci pour votre aide précieuse! |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
En 10g, le job créé par défaut GATHER_STATS_JOB s'exécute par défaut toutes les nuits entre 22H et 6H et durant le week-end. Il calcule les statistics sur les objets qui n'ont pas de statisques et sur les objets dont au moins 10% des lignes ont été modifiées.
|
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
d'exérience, dans OeBS, tous les jours c'est très compliqué quand tu commences à avoir du volume... creuse l'idée de MONITORING de Leo qui fonctionne parfaitement
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 29 ![]() |
C noté je vais voir avec le monotoring !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com