Bonjour a tous,
/!\ oracle 11g sous linux
J'ai monté un repository AWR ou je place les DMP des diferentes bases de notre system d'information.
Donc j'ai tous les awr de 15 db.
je voudrais faire une requête qui detecte les changements apres une release. Par exemple, lundi 22 septembre dans mon code y'a 200 sql_id, et ces 200 sql_id ont un plan:hash_value x
Demain on fait une release, pleins de changements dans le code... Je voudrais pouvoir faire une sql qui detecte s'il y a des sql_id nouveau.. et si ceux qui existaient avant ont subi un changement de plan_hash_value.
J'ai fait cette requête:
Ça me donne ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select snap.end_interval_time,stat.sql_id,stat.PLAN_HASH_VALUE from dba_hist_sqlstat stat inner join DBA_HIST_SNAPSHOT snap on snap.dbid=stat.dbid where stat.dbid=3765810940 and sql_id='bv1dqn6ug91u5';
Donc c'est pas mal, mais je voudrais avoir seulement les lignes ou il y a un changement par rapport a la ligne d'avant ; comme ceci par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 END_INTERVAL_TIME SQL_ID PLAN_HASH_VALUE ------------------------------ ------------- --------------- 19-SEP-14 01.15.04.283 AM bv1dqn6ug91u5 2200565844 18-SEP-14 10.45.32.554 PM bv1dqn6ug91u5 2200565844 18-SEP-14 08.00.55.730 PM bv1dqn6ug91u5 2200565844 18-SEP-14 11.45.45.608 PM bv1dqn6ug91u5 2200565844 18-SEP-14 07.15.45.817 PM bv1dqn6ug91u5 2200565844 18-SEP-14 07.00.42.033 PM bv1dqn6ug91u5 2200565844 18-SEP-14 06.00.27.229 PM bv1dqn6ug91u5 2200565844
Quelqu'un saurais comment grouper ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 END_INTERVAL_TIME SQL_ID PLAN_HASH_VALUE ------------------------------ ------------- --------------- 19-SEP-14 01.15.04.283 AM bv1dqn6ug91u5 2200565846 18-SEP-14 10.45.32.554 PM bv1dqn6ug91u5 2200565845 18-SEP-14 08.00.55.730 PM bv1dqn6ug91u5 2200565844 17-SEP-14 11.45.45.608 PM bv1dqn6ug91u5 2200565841
D'avance merci
Partager