Latest posts by Cyrille Modiano (see all)
- Renaming a RAC cluster - 27/09/2018
- Stop/Start all RAC databases at once - 26/09/2018
- RMAN Backup script - 08/11/2017
The v$log_history view contains important information on how application’s users use the database , this view can help you define periods with the most activity in the database.
v$log_history queries
You can adapt the query to your needs, you just have to change the way you format the date to be able to drilldown to the precision you want.
select round(avg(LOG_SWITCHES)) LOG_SWITCHES, DAY from ( select to_char(trunc(first_time), 'Day') DAY, TRUNC(FIRST_TIME, 'DDD'), count(*) LOG_SWITCHES from v$log_history group by TRUNC(FIRST_TIME, 'DDD'), to_char(trunc(first_time), 'Day') order by 2 ) group by day;
This one gives the following output :
LOG_SWITCHES DAY ------------ --------- 207 Sunday 212 Monday 218 Friday 192 Thursday 207 Wednesday 216 Tuesday 209 Saturday
You can find out which day of the week is the most active. You can also have a day to day analysis for the last month :
select round(avg(LOG_SWITCHES)) LOG_SWITCHES, DAY from ( select TRUNC(FIRST_TIME, 'DDD') DAY, count(*) LOG_SWITCHES from v$log_history where first_time between sysdate -30 and sysdate group by TRUNC(FIRST_TIME, 'DDD'), to_char(trunc(first_time), 'Day') order by 1 ) group by day order by 2;
here is the output :
LOG_SWITCHES DAY ------------ --------- 91 10-AUG-15 225 11-AUG-15 233 12-AUG-15 224 13-AUG-15 221 14-AUG-15 218 15-AUG-15 217 16-AUG-15 225 17-AUG-15 218 18-AUG-15 215 19-AUG-15 212 20-AUG-15 203 21-AUG-15 198 22-AUG-15 198 23-AUG-15 200 24-AUG-15 201 25-AUG-15 202 26-AUG-15 202 27-AUG-15 190 28-AUG-15 150 29-AUG-15 151 30-AUG-15 153 31-AUG-15 182 01-SEP-15 202 02-SEP-15 201 03-SEP-15 203 04-SEP-15 203 05-SEP-15 199 06-SEP-15 202 07-SEP-15 205 08-SEP-15 124 09-SEP-15
You can also drilldown to hours in the day :
select Hour , round(avg(LOG_SWITCHES)) LOG_SWITCHES from ( select to_char(trunc(first_time, 'HH'),'HH24') Hour, TRUNC(FIRST_TIME, 'DDD'), count(*) LOG_SWITCHES from v$log_history group by TRUNC(FIRST_TIME, 'DDD'), trunc(first_time, 'HH') order by 1 ) group by Hour order by Hour;
Here the output :
HO LOG_SWITCHES -- ------------ 00 8 01 9 02 8 03 8 04 25 05 7 06 8 07 8 08 8 09 8 10 8 11 8 12 8 13 8 14 8 15 8 16 8 17 8 18 8 19 7 20 8 21 7 22 8 23 15
Be creative 🙂
thank you, but after get results … what does it mean? what is suppose to find ? thank you.
Hi,
This analysis allows you to understand how your database is used, what are the most active hours and which ones have the least activity.
This information allows you to:
– Know when there is unusual activity on your database based on the usual usage data.
– know at what hours it is possible to do maintenance by impacting the least users.
Cyrille
Hi Cyrille really useful queries