84
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 1

IOUG Collaborate 2014 ASH/AWR Deep Dive

Embed Size (px)

Citation preview

Page 1: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 121

Page 2: IOUG Collaborate 2014 ASH/AWR Deep Dive

Deep Dive to ASH and AWR with EM12c

Kellyn Pot‟Vin

Consulting Member of Technical Team

Strategic Customer Program

Page 3: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 123

The following is intended to outline our general product

direction. It is intended for information purposes only, and

may not be incorporated into any contract. It is not a

commitment to deliver any material, code, or functionality,

and should not be relied upon in making purchasing

decisions. The development, release, and timing of any

features or functionality described for Oracle‟s products

remains at the sole discretion of Oracle.

Page 4: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 124

Program Agenda

What am I asked about?

Easiest Way to Get the Job Done

– ASH/AWR Reports in EM12c

– Compare ADDM

– Search SQL, (Least known and very valuable tool)

– Top Tricks in EM12c with ASH and AWR

Page 5: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 125

Brief History

ASH= Active Session History

AWR= Automatic Workload Repository

Introduced in Oracle 10g

Evolution to statspack, requests for performance reporting

improvements.

“Always on” approach to performance metrics with requirement of non-

locking collection process.

Requires Management Tuning Pack License from Oracle.

Page 6: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 126

Read vs. Write

MMON, MMNL

In Memory vs. written to disk

ASH Architecture

Build and Buffer

Page 7: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 127

Read vs. Write

MMON, MMNL

In Memory vs. written to disk

ASH Architecture

Build and Buffer

Page 8: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 128

Read vs. Write

MMON, MMNL

In Memory vs. written to disk

ASH Architecture

Build and Buffer

Page 9: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 129

The Location in EM12c For Some of Today’s Presentation…

Page 10: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1210

Running ASH Report from EM

• ASH is by time, not snapshot.

• Set start date and time.

• End date and time

• Generate report

Page 11: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1211

Beginning and End Time of

Report

How Many Samples

Average # of Sessions

Target information in Report

HTML Format ASH

Report Details

Page 12: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1212

Top 5 Events

12

Page 13: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1213

SQL Top Events

13

Page 14: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1214

Top Row Source

14

Page 15: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1215

Top PL/SQL Procedures

15

Page 16: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1216

Top Sessions

16

Page 17: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1217

Blocking Sessions

17

Page 18: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1218

Parallel Processes

18

Page 19: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1219

Activity Over Time

19

Page 20: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1220

ASH- What have we learned?

Solid information from samples for a time period of activity

Shouldn‟t be used for # of occurrences, as it‟s based on samples.

Excellent reporting on

– Percentage of activity

– SQL information

– Procedural info

– Blocking Sessions

– Activity over time.

20

Page 21: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1221

How Often Do We Ask, “What Changed?”

It ran fine last week, now it isn‟t!

ETL loads have changed, but no one has released any new code!

The DBA says there hasn‟t been any parameter changes to this

database, but I‟m sure there have been.

Compare ADDM Resolution

Page 22: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1222

What is Compare ADDM?

Uses Two AWR snapshots

Creates Report that-

– Compares SQL that is common and different.

– SGA changes

– IO/CPU bound issues

– Parameter Changes

Page 23: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1223

What is in an ADDM Compare?

Report Includes Following:

– Clear Demonstration of impact of change.

– Recommendations to address issue.

– Identifies causes behind change, (with limitations.)

– Lists Regressed SQL, too!

– Tip: If Installing to database for first time, (simple installation, nothing to concern about, just pkg to fulfill views) you must have preferred credentials SET of install will fail!

Page 24: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1224

Choose focus period

Choose to compare to an

Offset, Baseline or Custom

Executing a Report from EM12c

Comparison

Page 25: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1225

Familiar interface with visual wait event

comparisons.

Average # of sessions during each period

are displayed.

Main Screen of Comparison

2-3PM, 12th Vs. 13th

Page 26: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1226

Detail Report

High level data, highlight for analysis and recommendations.

Page 27: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1227

Regression SQL

Any performance degradation is noted with the down arrow icon:

Page 28: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1228

Top Segments Causing IO Waits

High Level data

Click on “Show Hot Object Breakdown” to see more detail.

Page 29: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1229

Resource Comparisons

Comparisons of Memory, CPU, IO and Interconnect.

Memory Is there Virtual paging?

Memory Base Period

Memory Comparison Period

Page 30: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1230

Dashboard Provided for CPU, Memory, IO and Interconnect

Is something OTHER than Oracle the cause?

Page 31: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1231

IO Bound Dashboard

Base vs. comparison period

Temp reads/writes specified

Single block read latency

Page 32: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1232

SQL Monitor, EM12c Style

One More way to identify performance issues.

Monitoring view ease for those less familiar with database

performance.

Page 33: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1233

SQL Monitor Dashboard

Status of Statement

Wait EventsDegree of

Parallelism

SQL_ID

SQL Text

Page 34: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1234

Exadata and Offloading

Drill down to specific statement within SQL Monitor will display offload

efficiency per statement.

Page 35: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1235

Full Detail of SQL Execution

Page 36: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1236

View Report

Page 37: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1237

SQL Monitor Report CLI

SET LONG 1000000

SET LONGCHUNKSIZE 1000000

SET LINESIZE 1000

SET PAGESIZE 0

SET TRIM ON

SET TRIMSPOOL ON

SET ECHO OFF

SET FEEDBACK OFF

SELECT DBMS_SQLTUNE.report_sql_monitor(

sql_id => '5vh6y3b7tnv8r',

type => 'TEXT',

report_level => 'ALL') AS report

FROM dual;

Page 38: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1238

Text Output of SQL Monitor

Page 39: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1239

One of the Best & Least Used Features in EM

Search SQL

Problem Query

Page 40: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1240

Available since OEM 10g

Strong, but simple feature to

assist the DBA

4v2tsp8dz0nhn is our SQL_ID

Go to the EM

Console, (Example is EM12c)

We Have the SQL_ID, What’s Next?

Search SQL

Page 41: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1241

Search SQL Interface

Choose AWR Snapshots, (change Time Period), AWR Baselines and

put SQL_ID

Page 42: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1242

Click on Search

SQL_ID link for SQL Details

Split up by tabs for Cursor, AWR, Baselines and SQL Tuning Sets

Plan Hash Value

Elapsed Time

Page 43: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1243

AWR Data

Page 44: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1244

Snapshot IDs

Click on Snapshot ID and gather valuable data on resource usage

during snapshot time or choose to view report.

Page 45: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1245

AWR Report or Run ADDM Report

Page 46: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1246

Running Reports, Command Line

$ORACLE_HOME/rdbms/admin/awrrpt.sql;

$ORACLE_HOME/rdbms/admin/ashrpt.sql;

$ORACLE_HOME/rdbms/admin/awrsqrpt.sql;

Page 47: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1247

Running Reports, Command Line

$ORACLE_HOME/rdbms/admin/awrrpt.sql;

$ORACLE_HOME/rdbms/admin/ashrpt.sql;

$ORACLE_HOME/rdbms/admin/awrsqrpt.sql;Less Known AWR Reports:

awrinfo.sql General AWR Info

awrddrpt.sql Comparison report between snapshots

awrblmig.sql Migrates pre-11g baseline data into 11g Baseline tables.

awrgrpt.sql RAC Aware AWR Report.

Page 48: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1248

AWR Info Report

Snapshot Interval Information

Basic Info on Instances and Nodes

No User or Application Schema info.

Space Usage by SYSAUX

WRH$ and Non- AWR Objects, ordered by size

Snapshot info and if any errors.

Advisor Tasks

Page 49: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1249

AWR Info Report

Page 50: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1250

ASH Info Report

Page 51: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1251

SQL_ID Specific AWR Report

Page 52: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1252

“Interesting Part”

Page 53: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1253

Finale!

Select * from table(dbms_xplan.display_awr(„43mp3mjufgnkg‟));

Page 54: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1254

Querying ASH Data Directly

More defined reporting

No need to pull full report

Detail on waits that are of interest

Join to non-AWR objects

Simple queries presented…

Page 55: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1255

V$ACTIVE_SESSION_HISTORY

SAMPLE_ID- This is a unique identifier within an ASH sample.

SAMPLE_TIME- A unit of time used by Active Session History

USER_ID- Identifier for a user that‟s executing the session.

SESSION_ID- Same as the SID or Session ID and can be used to join to SID in other views/tables.

SESSION_STATE- What was the state of the session when ASH recorded the sample.

ON CPU/WAITING- The two session states in Active Session History. ON CPU is active, vs. Waiting, which is self-explanatory.

EVENT- Type of event that the session is currently active or waiting on.

TIME_WAITED- How long the session has been waiting if waiting.

WAIT_TIME- Confusing- but this is populated by any wait time if the session is currently active for the previous waits.

SQL_ID- The unique identifier for the SQL statement being executed.

SQL_CHILD_NUMBER-The cursor child number.

Page 56: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1256

Session Averagesselect

ROUND(RATIO_TO_REPORT(SUM(1)) OVER () * 100 ,2) PERCENTAGE,

ash.session_type SESS_TYPE,

session_state STATUS,

decode(nvl(sql_id,'-1'),'-1','nonsql','sql') SQL_TYPE,

count(distinct to_char(session_id)|| to_char(session_serial#)) SESS_CNT

from v$active_session_history ash

where

sample_time > sysdate - 30/(24*60)

and (

( ash.session_state = 'ON CPU' )

or

( ash.session_type != 'BACKGROUND' )

)

group by

ash.session_type,

ash.session_state, decode(nvl(sql_id,'-1'),'-1','nonsql','sql')

order by count(*)

/

Page 57: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1257

Session Avg. Output

Note the % of Background processes

Page 58: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1258

Inspecting Whatcol type for a20

select * from (select

ash.SQL_ID , ash.SQL_PLAN_HASH_VALUE Plan_hash, aud.name type,

sum(decode(ash.session_state,'ON CPU',1,0)) "CPU",

sum(decode(ash.session_state,'WAITING',1,0)) "WAITING",

sum(decode(ash.session_state,'WAITING', decode(wait_class, 'User I/O',1,0),0)) "IO WAIT" ,

sum(decode(ash.session_state,'WAITING', decode(wait_class, 'User I/O',1,0),0)) "IO" ,

sum(decode(ash.session_state,'WAITING', decode(wait_class, 'Concurrency',1,0))) "CONCURRENCY" ,

sum(decode(ash.session_state,'WAITING', decode(wait_class, 'Application',1,0))) "Application" ,

sum(decode(ash.session_state,'ON CPU',1,1)) "TOTAL"

from v$active_session_history ash,

audit_actions aud

where SQL_ID is not NULL

and ash.sql_opcode=aud.action

and ash.sample_time > sysdate - &minutes /( 60*24)

group by sql_id, SQL_PLAN_HASH_VALUE , aud.name

order by sum(decode(session_state,'ON CPU',1,1)) desc

) where rownum < 5;

Page 59: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1259

12 Min. View of Waits by SQL_ID

Choose Time in Minutes To Review, (10 in our example)

SQL_ID and Plan Hash Value Shown

Waits for CPU, Wait, IO Wait and others.

Page 60: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1260

Quantity of Events Occurred Over Small Amounts of Time

Col event for a50

select event, count(1)

from v$active_session_history

where sample_time between

to_date('21-FEB-14 01.43.00 PM','dd-MON-yy hh:mi:ss PM')

and

to_date('21-FEB-15 01.53.00 PM','dd-MON-yy hh:mi:ss PM')

group by event

order by event;

Page 61: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1261

Results, Where to Focus?

Page 62: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1262

Transaction Wait Detail

select

to_char(sample_time,'HH:MI') st,

substr(event,0,20) event,

ash.session_id sid,

mod(ash.p1,16) lm,

ash.p2,

ash.p3,

nvl(o.object_name,ash.current_obj#) objn,

substr(o.object_type,0,10) otype,

CURRENT_FILE# fn,

CURRENT_BLOCK# blockn,

ash.SQL_ID,

BLOCKING_SESSION bsid

from v$active_session_history ash,

all_objects o

where event like 'enq: TX%'

and o.object_id (+)= ash.CURRENT_OBJ#

and sample_time > sysdate - 10/(60*24)

Order by sample_time

Page 63: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1263

Transaction Lock Output

What TX row locks are occurring!

Page 64: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1264

Knowing What’s in the ASH Buffer

• Deters from making assumptions on what data is being

queried.

• Know your samples!

Page 65: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1265

Wait Events Across Nodes

Page 66: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1266

Query top 10

SQL_ID‟s in the

last 10 minutes?

Page 67: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1267

SQL_ID and CPU Usage

Page 68: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1268

IO Waits by Object from ASH

Page 69: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1269

SQL Text with ASH

• SQL for most recent five minutes of sample data from ASH

Page 70: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1270

SQL Results

• SQL_ID, SQL Text, Sample Time that Process was captured

in.

Page 71: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1271

Average Activity- Graphed

Page 72: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1272

select

to_char(to_date(tday||' '||tmod*&v_secs,'YYMMDD SSSSS'),'DD-MON HH24:MI:SS') tm,

samples npts,total/&samples aas,

substr(substr(substr(rpad('+',round((cpu*&v_bars)/&samples),'+') ||

rpad('-',round((waits*&v_bars)/&samples),'-') ||

rpad(' ',p.value * &v_bars,' '),0,(p.value * &v_bars)) ||

p.value || substr(rpad('+',round((cpu*&v_bars)/&samples),'+') ||

rpad('-',round((waits*&v_bars)/&samples),'-') ||

rpad(' ',p.value * &v_bars,' '),(p.value * &v_bars),10) ,0,30)

,0,&v_graph)graph,total,cpu, waits

from (

select to_char(sample_time,'YYMMDD')tday

, trunc(to_char(sample_time,'SSSSS')/&v_secs) tmod

, sum(decode(session_state,'ON CPU',1,decode(session_type,'BACKGROUND',0,1))) total

, (max(sample_id) - min(sample_id) + 1 ) samples

, sum(decode(session_state,'ON CPU' ,1,0)) cpu

, sum(decode(session_type,'BACKGROUND',0,decode(session_state,'WAITING',1,0))) waits

/* for waits I want to subtract out the BACKGROUND

but for CPU I want to count everyon */

from v$active_session_history

where sample_time > sysdate - &v_hours/24

group by trunc(to_char(sample_time,'SSSSS')/&v_secs),

to_char(sample_time,'YYMMDD')

Page 73: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1273

Query Cont.union all

select to_char(sample_time,'YYMMDD')tday

, trunc(to_char(sample_time,'SSSSS')/&v_secs) tmod

, sum(decode(session_state,'ON CPU',10,decode(session_type,'BACKGROUND',0,10))) total

, (max(sample_id) - min(sample_id) + 1 ) samples

, sum(decode(session_state,'ON CPU' ,10,0)) cpu

, sum(decode(session_type,'BACKGROUND',0,decode(session_state,'WAITING',10,0))) waits

/* for waits I want to subtract out the BACKGROUND

but for CPU I want to count everyon */

from dba_hist_active_sess_history

where sample_time > sysdate - &v_hours/24

and sample_time < (select min(sample_time) from v$active_session_history)

group by trunc(to_char(sample_time,'SSSSS')/&v_secs),

to_char(sample_time,'YYMMDD')) ash, v$parameter p

where p.name='cpu_count'

order by to_date(tday||' '||tmod*&v_secs,'YYMMDD SSSSS')

/

73

Page 74: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1274

Pivot the Wait Events

Page 75: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1275

Digging into History

DBA_HIST_ACTIVE_SESS_HISTORY

– SNAP_ID

– SAMPLE_ID

– SAMPLE_TIME

– SESSION_ID

– USER_ID

– SQL_ID

– WAIT_CLASS

– SESSION_STATE

– PGA_ALLOCATED

Page 76: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1276

Process Information

SELECT * FROM (

SELECT /*+ PARALLEL */

count(*) AS count,

user_id, program, module, sql_id

FROM SYS.DBA_HIST_ACTIVE_SESS_HISTORY

WHERE sample_time > TO_DATE('19-FEB-2014 03.00.00 PM','dd-MON-yy hh:mi:ss PM')

AND sample_time < TO_DATE('19-FEB-2014 08.00.00 PM','dd-MON-yy hh:mi:ss PM')

AND program LIKE 'oracle@%'

GROUP BY user_id, program, module, machine, sql_id

ORDER BY count(*) desc

)

WHERE rownum <= 20

/

Page 77: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1277

Results of Process History

Page 78: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1278

Tyler Muth ASH Mining Query

Page 79: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1279

ASH Mining Output

Additional Options:

• Physical Read Averages

• Physical Writes, (Max/Averages)

• Redo Info

• Logon Info

• Hard Parsing, etc.

Page 80: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1280

Best Practice When Querying ASH Data

Keep it Simple and don‟t reinvent the wheel.

Samples are an alias for time, not for counts.

Understand what is valuable and compare to packaged reports.

Be aware on RAC of node specific data.

Take care when querying Obj#, File# and Block#, (still issues in

different versions…)

Check the time that is available in buffer, don‟t assume!

Page 81: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1281

AWR/ASH Links/Blogs

Tyler Muth: http://tylermuth.wordpress.com/

Kyle Hailey, John Beresniewicz, Graham Wood:

http://ashmasters.com/

Mine- “For the Love of ASH and AWR”

http://dbakevlar.com/2011/02/for-the-love-of-awr-and-ash/

Oracle- http://www.oracle.com/technetwork/oem/db-mgmt/db-mgmt-

093445.html

Page 82: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1282

Connect with me-

Page 83: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1283

Page 84: IOUG Collaborate 2014 ASH/AWR Deep Dive

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 1284