Changement de profil des requêtes SQL
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:
Code:
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'; |
Ça me donne ceci:
Code:
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 |
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:
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 |
Quelqu'un saurais comment grouper ça?
D'avance merci