Bonjour les experts,
J'avais compris que V$ACTIVE_SESSION_HISTORY comprenait des snapshots de v$session (et de peut-être d'autres vues) pris toutes les secondes.
Ensuite, selon la configuration, un snapshot AWR est pris toutes les heures en filtrant les données de V$ACTIVE_SESSION_HISTORY.
Dernièrement, j'ai dû analyser sur une base un pic d'activité de 20 secondes arrivé trois jours plus tôt, le 20/05 par exemple.
Dans V$ACTIVE_SESSION_HISTORY, le min de SAMPLE_TIME est le 23/05, idem pour le max --> les infos du 20/05 ont été effacées et je ne peux pas lancer mon script comptant, seconde par seconde les occurrences des ordres SQL.
Il y a bien les tables DBA_HIST_XXX mais celles-ci ont une granularité de l'heure alors que ASH a une granularité de la seconde, mes scripts ne sont donc pas utilisables.
Je pensais que tout était perdu quand, miracle, dans le Cloud Control, menu Performance/ASH Analytics, j'ai réussi a retrouver ces données à la minute près en choisissant une période Custom (je n'ai pas testé la seconde).
Ma question est donc : d'où viennent ces données puisqu'il n'y a plus rien de cette date dans V$ACTIVE_SESSION_HISTORY?
Est-ce que un snapshot AWR peut reconstruire TOUTES les données des snapshots ASH le composant avec la granularité de la seconde (comme un .zip est un fichier compressé mais non destructif du fichier de base) ou bien les données ASH affichées dans cet écran ne sont finalement que les données filtrées du snapshot AWR? Là où j'ai été surpris c'est que la page ne s'est pas affichée de suite et il y avait un message "Data processing", comme ci Oracle recréait ces données et que cela nécessitait un certain travail.
Dernier point, en triturant les options de cet écran, j'ai eu un message d'erreur avec affiché "Error DBMS_ASH_INTERNAL". C'est un package non documenté, le web est très pauvre dessus, vous savez à quoi il sert précisément?
Bonne soirée
Partager