|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 13 ![]() |
Bonjour, je dois analyser des requêtes faites sur un DB oracle et on m'a informé qu'il était possible de le faire à l'aide de la vue v$sqlarea.
En lisant la documentation Oracle j'ai appris (si j'ai bien compris) que l'on peut voir que les requêtes SQL qui sont dans la mémoire, analysés, et prêtes pour l'exécution. C'est à dire ? Je ne peux donc pas visualiser toutes les requêtes faites (durant les dernières 24h)? Y a-t-il un autre moyen pour visualiser l'historique de toutes le requêtes ? Merci de me donner un coup de pousse. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() ![]() Inscription : décembre 2003 Messages : 480 ![]() |
la réponse à ta question dépend de la version de ta db mais aussi le but recherché (optimisation des requêtes les plus gourmandes ? ou audit "qui a fait quoi")
pour l'analyse des performances et si tu es en 10g, tu dois absolument utiliser les fonctionalités AWR (Automatic Workload Repository) qui te permettront de mettre en avant les requêtes qui consomment le plus de resources, qui sont le plus souvent utilisées ... rien ne sert de connaître toutes les requêtes qui ont été lancées ; il "suffit" simplement d'optimiser les plus fréquentes ou les plus gourmandes (et à toi de définir gourmand - à priori le temps d'exécution est un bon départ) en 9i , il te faudra utiliser STATPACK rmq : en v$sqlarea tu devrais trouver les requêtes les plus fréquemment utilisées, et à qui tu devrais accorder la priorité si maintenant, tu veux simplement recenser qui fait quoi sur la base, il faut plutôt penser à installer de l'audit sur ta db.
__________________
*** OPN Exadata Specialist *** *** OCE Performance Tuning 11g *** *** OCE Rac 10g *** *** OCP DBA 9i-10g-11g *** |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
attention aux licences AWR et de tous les advisors...
En 10g aussi le statpack est donc plus qu'utile ! |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 13 ![]() |
Oui le but est de recenser qui fait quoi sur la base, ou plutôt savoir pour certaines tables comment sont-elles utilisés (select, insert,etc..), et par qui.
Comme vous dites j'ai pensé à utiliser la fonctionnalité AUDIT_TRAIL dont apparemment mon supérieur (le client) est allergique. Il me dis que ça pose des problèmes du fait que c'est qqch d'assez lourd à faire tourner. Alors il veut aller voir dans la V$sqlarea ! Selon moi comme il n'y a pas toutes le requêtes cella ne va servir à rien ! D'autre part est-il vrai que c'est lourd à mettre en place AUDIT_TRAIL. Merci de me donner votre avis sur ces deux possibilités. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2009 Messages : 2 ![]() |
Bonjour,
comment pourrais-je installé audit qui permet de retrouver toutes les requestes sql et répondreà la question qui et qui fait quoi ? |
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Inscription : septembre 2006 Messages : 249 ![]() |
dbms_fga
un audit complet de toute les transactions... exemple: (mais ca peut aller plus loin que ca) exemple: Code :
exec dbms_fga.add_policy (object_schema=>'TEST',object_name=>'TTEST',policy_name=>'NICO_TEST', statement_types => 'SELECT, INSERT, UPDATE, DELETE'); je sais tous ce qu'il se passe sur la table TTEST du shema TEST exemple: pour voir le résultat Citation:
Pour la supprimer: Code :
exec dbms_fga.drop_policy (object_schema=>'TEST',object_name=>'TTEST',policy_name=>'NICO_TEST'); |
|
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Nicolas Inscription : octobre 2010 Messages : 1 ![]() |
Bonjour,
si la base à auditer est en version >= 10g tu peux activer AUDIT_TRAIL au niveau de la base et ajouter l'option "db,extended" qui ajoutera le code SQL complet ainsi que la valeur des variables "binds" à la table SYS.AUD$ . Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com