Oracle Closed World 2010:
Graphing the AAS ala EM + doing 
  some cool linear regression
Who am I?
• Karl Arao, Oracle ACE, OCP‐DBA, RHCT
• Solutions Architect / Principal Consultant @ SQL*Wizard
• Blog: http://karlarao.wordpress.com
• Wiki: http://karlarao.tiddlyspot.com
DBA_HIST_* tables
My first close encounter
gc block lost




http://karlarao.wordpress.com/2009/06/07/diagnosing-and-resolving-gc-block-lost
AWR Scripts
Visualization
Can’t go back in time?
AAS – Average Active Sessions
Kyle Hailey: http://www.perfvision.com/ftp/emea_2010_may/02_AAS.ppt




       Max CPU




    Max CPU
AAS – the Golden Metric
AAS & CPU count as a yardstick for a possible performance problem (I suggest reading Kyle's 
   stuff about this):

  if AAS < 1 
    ‐‐ Database is not blocked
  AAS ~= 0 
    ‐‐ Database basically idle
    ‐‐ Problems are in the APP not DB
  AAS < # of CPUs
    ‐‐ CPU available
    ‐‐ Database is probably not blocked
    ‐‐ Are any single sessions 100% active?
  AAS > # of CPUs
    ‐‐ Could have performance problems
  AAS >> # of CPUS
    ‐‐ There is a bottleneck
awr_topevents.sql
Textual trends
AAS throughout the AWR retention 
                    period!




http://karlarao.wordpress.com/2010/07/25/graphing-the-aas-with-perfsheet-a-la-enterprise-manager
Capacity Planning
awr_genwl.sql
http://karlarao.wordpress.com/2010/01/31/workload-characterization-using-dba_hist-tables-and-ksar
U = R / C
where aas > 1
Filter the data points
•   AAS range
           aas > 1

•   Per SNAP_ID or range of SNAP_IDs
           id in (336)
           where id >= 336 and  id <= 340

•   Oracle CPU Utilization
           oracpupct > 50

•   OS CPU Utilization
          oscpupct > 50

•   Workload periods

AND TO_CHAR(s0.END_INTERVAL_TIME,'D') >= 1     ‐‐ Day of week: 1=Sunday 7=Saturday
AND TO_CHAR(s0.END_INTERVAL_TIME,'D') <= 7
AND TO_CHAR(s0.END_INTERVAL_TIME,'HH24MI') >= 0900     ‐‐ Hour
AND TO_CHAR(s0.END_INTERVAL_TIME,'HH24MI') <= 1800
AND s0.END_INTERVAL_TIME >= TO_DATE('2010‐jan‐17 00:00:00','yyyy‐mon‐dd hh24:mi:ss')    ‐‐ Data range
AND s0.END_INTERVAL_TIME <= TO_DATE('2010‐aug‐22 23:59:59','yyyy‐mon‐dd hh24:mi:ss‘)
Straight line graph: Slope‐Intercept Form
                 y = mx + b
AAS vs. CPU% utilization
http://karlarao.tiddlyspot.com/#r2project
“oracpupct” column also has a good linear fit. Since the 
server’s load is CPU centric (see top r2 stats from .92 and 
                  above), why not use it? 

    AAS(y) against CPU% Utilization(x) will be more 
meaningful/readable instead of “CPU used by this session”
AAS vs. CPU% utilization
http://karlarao.tiddlyspot.com/#r2project
Drilling down on the peak workload... 
            with AAS of 10
AAS vs. CPU% utilization
http://karlarao.tiddlyspot.com/#r2project
Now on the low workload period... 
        with AAS of 2.2
AAS vs. CPU% utilization
http://karlarao.tiddlyspot.com/#r2project
Conclusion
References and Tools
•   http://karlarao.wordpress.com
     – http://karlarao.tiddlyspot.com/#%5B%5BStorage%20IOPS%2Ccapacity%2Cperformance
       %2Ccost%5D%5D
     – http://karlarao.tiddlyspot.com/#Statistics
     – http://karlarao.tiddlyspot.com/#OraclePerformance
•   Tanel Poder @ http://blog.tanelpoder.com
     – http://www.tanelpoder.com/files/TPT_public.zip
     – http://www.tanelpoder.com/files/PerfSheet.zip
     – Neil Gunther & Tanel Poder ‐ Multidimensional Visualization of Oracle Performance 
       using Barry007 http://arxiv.org/pdf/0809.2532
•   Kyle Hailey @ http://ashmasters.com , http://www.perfvision.com
•   Craig Shallahamer @ orapub.com
     – Introduction To Oracle Server Consolidation
     http://resources.orapub.com/product_p/server_consolidation_ppt.htm
•   Husnu Sensoy @ husnusensoy.wordpress.com
     – Database Consolidation Best Practices
     http://husnusensoy.files.wordpress.com/2010/05/database‐consolidation‐best‐
        practices.pdf
•   Andy Rivenes @ http://www.appsdba.com/pubs.htm
•   Neeraj Bhatia @ www.nioug.org/files/Linear_Regression.pdf
Contact me through:

  karao@sqlwizard.com

Oracle Closed World 2010: Graphing the AAS ala EM + doing some cool linear regression