Lost without a trace

Preview:

Citation preview

www.sagecomputing.com.auwww.sagecomputing.com.au

Lost Without a Trace

Penny Cookson - Managing Director

SAGE Computing ServicesSAGE Computing ServicesCustomised Oracle Training WorkshopsCustomised Oracle Training Workshops

and Consultingand Consultingwww.sagecomputing.com.auwww.sagecomputing.com.au

www.sagecomputing.com.auwww.sagecomputing.com.au

Using trace 10053Using trace 10046Including bind variableSetting application detailsConsolidating trace filesWriting applications that allow tracing

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace optimiser decisionsNot formatted with tkprofALTER SESSION SET EVENTS '10053 trace name context forever, level 1‘ALTER SESSION SET EVENTS '10053 trace name context off';File in user_dump_destOnly on hard parse

Trace 10053Trace 10053

www.sagecomputing.com.auwww.sagecomputing.com.au

SELECT b.resource_code, b.costFROM events e, bookings bWHERE e.event_no = b.event_noAND e.org_id = 1030;

Trace 10053 Trace 10053 -- ExampleExample

ALTER SESSION SET EVENTS ‘10053 trace name context forever, level 1’;

ora10g_ora_3028.trc

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File ––InitialisationInitialisation ParametersParameters

Check for Optimizer Mode and other session variables

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File –– Table, Table, Column and Index StatsColumn and Index Stats

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File –– Single Single Table Access PathsTable Access Paths

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File –– Join Join Order and Mechanism [1]Order and Mechanism [1]

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File –– Join Join Order and Mechanism [2]Order and Mechanism [2]

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File ––Best So FarBest So Far

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10053 File Trace 10053 File –– Final PlanFinal Plan

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10046

www.sagecomputing.com.auwww.sagecomputing.com.au

user_dump_destLocation for trace filesSet at system level only

SELECT isses_modifiable, issys_modifiable,isinstance_modifiable

FROM v$parameterWHERE name = 'user_dump_dest'

ISSES ISSYS_MOD ISINS----- --------- -----FALSE IMMEDIATE TRUE

Initialisation ParametersInitialisation Parameters

www.sagecomputing.com.auwww.sagecomputing.com.au

max_dump_file_sizeMaximum size of trace file in OS blocksCan be set at session level

SELECT isses_modifiable, issys_modifiable,isinstance_modifiable

FROM v$parameterWHERE name = ‘max_dump_file_size'

ISSES ISSYS_MOD ISINS----- --------- -----TRUE IMMEDIATE TRUE

Initialisation ParametersInitialisation Parameters

www.sagecomputing.com.auwww.sagecomputing.com.au

timed_statisticsAutomatically on if statistics_level = TYPICAL or ALLNeeded for cpu/elapsed times

sql_trace = trueSets tracing on at instance level

Can be set at session levelSELECT isses_modifiable,

issys_modifiable,isinstance_modifiable

FROM v$parameterWHERE name = ‘sql_trace'

ISSES ISSYS_MOD ISINS----- --------- -----TRUE IMMEDIATE TRUE

Initialisation ParametersInitialisation Parameters

www.sagecomputing.com.auwww.sagecomputing.com.au

Identify location of user_dump_destCheck max_dump_file_sizeTurn tracing on for the instance (performance overhead) or session

ALTER SESSION SET SQL_TRACE=TRUE;

ALTER SYSTEM SET SQL_TRACE=TRUE;

Turning Trace 10046 OnTurning Trace 10046 On

www.sagecomputing.com.auwww.sagecomputing.com.au

tkproftkprof

tkprof ora10g_ora_4216.trc trace16.lst sort=execpu,prscpu,fchcpu, sys=no

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace levels1 Trace resources4 Trace resources and bind variable values8 Trace resources and wait events12 Trace resources, bind variables and wait

eventsALTER SYSTEM SET EVENTS ‘10046 trace name context forever, level 12’ALTER SESSION SET EVENTS ‘10046 trace name context forever, level 12’

Trace 10046 LevelsTrace 10046 Levels

www.sagecomputing.com.auwww.sagecomputing.com.au

ALTER session SET EVENTS ‘10046 tracename context forever, level 12’

DECLAREv_event_no NUMBER :=2264;v_count NUMBER;BEGINSELECT COUNT(e.comments)INTO v_countFROM events e, bookings bWHERE e.event_no = b.event_noAND e.org_id = v_event_no;END;

Trace 10046 ExampleTrace 10046 Example

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace 10046 ExampleTrace 10046 Example

www.sagecomputing.com.auwww.sagecomputing.com.au

tkproftkprof

tkprof ora10g_ora_456.trc trace1.prf

www.sagecomputing.com.auwww.sagecomputing.com.au

trcsess used to consolidate a number of trace filesBased on

ServiceClientidModuleAction

DBMS_APPLICATION_INFO package can be used to set the module and action from within an application

TrcessTrcess

www.sagecomputing.com.auwww.sagecomputing.com.au

trcsess output=output_filesession=session_idclientid=client_idservice=service_nameaction=action_namemodule=module_nametrace_files =tracefilenames

trcesstrcess -- SyntaxSyntax

www.sagecomputing.com.auwww.sagecomputing.com.au

dbms_application_info.set_module(module_name=>'RESBOOK',action_name=>'UPDATEBOOK');

Setting Module and ActionSetting Module and Action

SELECT module, actionFROM v$sessionWHERE module IS NOT NULLMODULE ACTION ---------------- ---------------SQL*PlusRESBOOK UPDATEBOOK SQL*Plus

www.sagecomputing.com.auwww.sagecomputing.com.au

Setting Module and ActionSetting Module and Action

Set Module and Action in your program code

www.sagecomputing.com.auwww.sagecomputing.com.au

Create Trace FilesCreate Trace Files

ALTER SYSTEM SET EVENTS ‘10046 trace name context forever, level 12’BEGINupdate_bookings2;END;

Execute this from 3 sessions

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace FilesTrace Files

www.sagecomputing.com.auwww.sagecomputing.com.au

Consolidate Trace FilesConsolidate Trace Files

trcsess output=trace4.trc module=RESBOOK

tkprof trace4.trc trace4.lst sys=no

trcsess output=trace4.trc module=RESBOOK

www.sagecomputing.com.auwww.sagecomputing.com.au

TraceSessionService/Module/ActionClient ID

Gather statistics forSessionService/Module/ActionClient ID

Set Module/Action with dbms_application_infoSet Client Id with dbms_session

DBMS_MONITORDBMS_MONITOR

www.sagecomputing.com.auwww.sagecomputing.com.au

Gather Stats for a Gather Stats for a Module/ActionModule/Action

www.sagecomputing.com.auwww.sagecomputing.com.au

Find Active StatsFind Active Stats

SELECT * FROMDBA_ENABLED_AGGREGATIONS

AGGREGATION_TYPE---------------------PRIMARY_ID------------------------------------------------------------QUALIFIER_ID1------------------------------------------------QUALIFIER_ID2--------------------------------SERVICE_MODULE_ACTIONora10g.sagecomputing.com.auRESBOOKUPDATEBOOK

www.sagecomputing.com.auwww.sagecomputing.com.au

View StatsView Stats

SELECT stat_name, valueFROM v$serv_mod_actsWHERE service_name =

'ora10g.sagecomputing.com.au'AND module = 'RESBOOK'AND action = 'UPDATEBOOK'AND value != 0/

www.sagecomputing.com.auwww.sagecomputing.com.au

View StatsView Stats

STAT_NAME VALUE---------------------------------------------------------------- ----------user calls 4DB time 859564DB CPU 250180parse count (total) 9parse time elapsed 916execute count 24sql execute elapsed time 573749opened cursors cumulative 9session logical reads 31912redo size 5770380user commits 1db block changes 49480

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace a ClientTrace a Client

www.sagecomputing.com.auwww.sagecomputing.com.au

Find Active TracesFind Active Traces

SELECT * FROMDBA_ENABLED_TRACES

TRACE_TYPE---------------------PRIMARY_ID-------------------------------------------------------------QUALIFIER_ID1------------------------------------------------QUALIFIER_ID2 WAITS BINDS INSTANCE_NAME-------------------------------- ----- ----- ----------------CLIENT_IDPENNY

TRUE TRUE

www.sagecomputing.com.auwww.sagecomputing.com.au

Trace a ClientTrace a Client

www.sagecomputing.com.auwww.sagecomputing.com.au

Consolidate Trace FilesConsolidate Trace Files

trcsess output=trace4.trc module=RESBOOK

tkprof trace5.trc trace5.lst sys=no

trcsess output=trace5.trc clientid=‘PENNY’

www.sagecomputing.com.auwww.sagecomputing.com.au

DB SESSIONS

End to End MonitoringEnd to End Monitoring

GENERIC

GENERIC

GENERIC

GENERIC

APPUSER1

APPUSER2

APPUSER3

APPUSER4

APPUSER5

www.sagecomputing.com.auwww.sagecomputing.com.au

End to End MonitoringEnd to End Monitoring

GENERICAPPUSER1

V$SESSIONCLIENT_IDSERVICE_NAMEMODULEACTION

www.sagecomputing.com.auwww.sagecomputing.com.au

End to End MonitoringEnd to End Monitoring

GENERIC

V$SESSIONCLIENT_ID = APPUSER1SERVICE_NAME=ora10gMODULE=RESBOOKACTION=UPDATE_BOOK

GENERIC

V$SESSIONCLIENT_ID = APPUSER1SERVICE_NAME=ora10gMODULE=RESBOOKACTION=UPDATE_BOOK

GENERIC

V$SESSIONCLIENT_ID = APPUSER1SERVICE_NAME=ora10gMODULE=RESBOOKACTION=UPDATE_BOOK

GENERIC

V$SESSIONCLIENT_ID = APPUSER1SERVICE_NAME=ora10gMODULE=RESBOOKACTION=UPDATE_BOOK

ora10g_ora_7888.trc

ora10g_ora_6734.trc

ora10g_ora_3562.trc

ora10g_ora_9846.trc

trcsess output=appuser1.trc clientid=APPUSER1

appuser1.trc

tkprof appuser1.trc appuser1.lst

appuser1.lst

www.sagecomputing.com.auwww.sagecomputing.com.au

Example Example -- HTMLDBHTMLDB

www.sagecomputing.com.auwww.sagecomputing.com.au

Example HTMLDBExample HTMLDB

SELECT service_name, client_identifier, module, action,usernameFROM v$sessionWHERE username = 'HTMLDB_PUBLIC_USER'

SERVICE_NAME--------------------------------------------------------------CLIENT_IDENTIFIER--------------------------------------------------------------MODULE------------------------------------------------ACTION USERNAME-------------------------------- -----------------------------ora10g.sagecomputing.com.au

HTML DBapplication 118, page 13, sessio HTMLDB_PUBLIC_USER

www.sagecomputing.com.auwww.sagecomputing.com.au

Example Example -- HTMLDBHTMLDB

www.sagecomputing.com.auwww.sagecomputing.com.au

Example HTMLDBExample HTMLDB

SELECT service_name, client_identifier, module, action,usernameFROM v$sessionWHERE username = 'HTMLDB_PUBLIC_USER'

SERVICE_NAME--------------------------------------------------------------CLIENT_IDENTIFIER--------------------------------------------------------------MODULE------------------------------------------------ACTION USERNAME-------------------------------- -----------------------------ora10g.sagecomputing.com.au

HTML DBapplication 118, page 13, sessio HTMLDB_PUBLIC_USER

www.sagecomputing.com.auwww.sagecomputing.com.au

Example HTMLDBExample HTMLDB

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Using Enterprise ManagerUsing Enterprise Manager

www.sagecomputing.com.auwww.sagecomputing.com.au

Thank YouFor Your Attention

Enquiries@sagecomputing.com.au

SAGE Computing ServicesSAGE Computing ServicesCustomised Oracle Training WorkshopsCustomised Oracle Training Workshops

and Consultingand Consultingwww.sagecomputing.com.auwww.sagecomputing.com.au

Recommended