SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
The 
most 
important 
trick 
of 
performance 
instrumentation 
Cary 
Millsap 
Accenture 
Enkitec 
Group 
and 
Method 
R 
Corporation 
@CaryMillsap 
OakTable 
World 
2014 
·∙ 
San 
Francisco, 
California 
12:50p–1:00p 
Monday 
29 
September 
2014 
© 
2014 
Method 
R 
Corporation 
1 
TM 
MeTHOD R
@CaryMillsap 
Performance is not an 
attribute of a system. 
2
ID USERNAME MODULE START_TIME R SLR 
-- -------- ------- -------------------------- ----- --- 
1 FCHANG OE BOOK 2014-09-15T08:14:22.189533 2.019 2.0 
2 RSMITH OE SHIP 2014-09-15T08:14:23.673849 3.528 5.0 
3 DJOHNSON OE PICK 2014-09-15T08:15:01.938816 1.211 5.0 
4 FFORBES OE BOOK 2014-09-15T08:17:23.815511 0.716 2.5 
5 FCHANG OE BOOK 2014-09-15T08:17:24.032562 1.917 2.5 
6 LBUMONT PA MTCH 2014-09-15T08:17:42.019328 1.305 2.0 
@CaryMillsap 
3 
This 
thing 
called 
an 
experience... 
#define FAST (R ≤ SLR)
ID USERNAME MODULE R SLR FAST? 
-- -------- ------- ----- --- ----- 
1 FCHANG OE BOOK 2.019 2.0 N 
2 RSMITH OE SHIP 3.528 5.0 Y 
3 DJOHNSON OE PICK 1.211 5.0 Y 
4 FFORBES OE BOOK 0.716 2.5 Y 
5 FCHANG OE BOOK 1.917 2.5 Y 
6 LBUMONT PA MTCH 1.305 2.0 Y 
@CaryMillsap 
4 
This 
thing 
called 
an 
experience... 
#define FAST (R ≤ SLR)
@CaryMillsap 
Performance is an attribute of 
each individual experience 
with a system. 
5
EXPERIENCE 
• id 
• task-id 
• user-id 
• ip-address 
• start-time 
• end-time 
• ERROR-code 
• WORK-done 
TASK 
• id 
• name 
• ... 
SQL 
• ID 
• Task-id 
• ... 
N 
1 
1 
N 
@CaryMillsap 6
@CaryMillsap 
The “trick”... 
7
@CaryMillsap 
Each 
experience 
gets its own 
unique id. 
8
@CaryMillsap 
That’s 
it. 
9
@CaryMillsap 
Each 
experience 
gets its own 
unique id. 
10
@CaryMillsap 
You 
need 
to 
see 
this 
experience 
id 
in 
your 
session’s 
v$ 
data 
and 
your 
trace 
data. 
11 
❶ 
❷
@CaryMillsap 
Implementation? 
12
T 
UNDER CONSTRUCTION 
@CaryMillsap 13
dbms_application_info.set_module( 
module_name 
=> 'OE BOOK', 
action_name 
=> sys_guid() -- 32-char hex string 
); 
-- Your ‘book order’ code 
dbms_application_info.set_module( 
module_name 
=> null, 
action_name 
=> null 
); 
@CaryMillsap 
14 
SQL, PL/SQL
conn.ModuleName = "OE BOOK"; 
conn.ActionName = Guid.NewGuid().toString(); 
// Your ‘book order’ code 
conn.ModuleName = ""; 
conn.ActionName = ""; 
@CaryMillsap 
ODP.NET 
15
String metrics[] = new 
String[OraCxn.END_TO_END_STATE_INDEX_MAX]; 
metrics[END_TO_END_MODULE_INDEX] = "OE BOOK"; 
metrics[END_TO_END_ACTION_INDEX] = UUID.randomUUID().toString(); 
conn.setEndToEndMetrics(metrics, (short) 0); 
// Your ‘book order’ code 
metrics[END_TO_END_MODULE_INDEX] = ""; 
metrics[END_TO_END_ACTION_INDEX] = ""; 
conn.setEndToEndMetrics(metrics, (short) 0); 
@CaryMillsap 
16 
Java, ADF
17
setClientInfo method supports JDBC DMS metrics 
setEndToEndMetrics is deprecated 
DBOP tag can be associated with application thread 
18 
New in 12.1
19 
Oh, and... 
module and action lengths are limited by JDBC 
(Thanks Lasse Jenssen)
@CaryMillsap 
Postscript 
A 
UUID 
in 
canonical 
form 
is 
36 
characters 
long 
(32 
lowercase 
hexadecimal 
characters 
and 
4 
hyphens). 
However, 
v$session.action 
is 
VARCHAR2(32), 
so 
either 
we 
need 
to 
perform 
a 
more 
sophisticated 
transformation 
than 
toString 
upon 
the 
UUID 
(such 
as 
to 
remove 
the 
hyphens), 
or 
we 
have 
to 
choose 
another 
column 
in 
which 
to 
store 
it. 
We’re 
also 
investigating 
whether 
the 
new 
12.1 
begin_operation 
function 
and 
end_operation 
procedure 
in 
dbms_sql_monitor 
will 
accomplish 
our 
goal 
of 
assigning 
a 
unique 
id 
to 
each 
end-­‐user 
experience. 
The 
material 
at 
http:// 
docs.oracle.com/database/121/TGSQL/tgsql_monit.htm#TGSQL789 
and 
http://docs.oracle.com/database/121/ARPLS/ 
d_sql_monitor.htm#ARPLS74779 
looks 
promising. 
The 
combination 
of 
dbop_name 
and 
dbop_eid 
should 
be 
unique, 
but 
to 
meet 
my 
needs, 
these 
elements 
would 
have 
to 
render 
into 
the 
session’s 
trace 
data. 
These 
are 
the 
kinds 
of 
things 
we’re 
working 
on. 
20
@CaryMillsap 
What you get 
21
experience 
id 
(PK) 
USERNAME MODULE_NAME ACTION_NAME START_TIME 
-------- ----------- -------------------------------- ---------- 
FCHANG OE BOOK 4a782ce58c4c462990547500d2fd308d 2014-09-15 
RSMITH OE SHIP 990a5426012841fa83c0cfa3690fad54 2014-09-15 
DJOHNSON OE PICK 9d92d1cceb87405f94a04d0224e1c7c4 2014-09-15 
FFORBES OE BOOK 2c920fc0fb91473ab4c141423e450715 2014-09-15 
FCHANG OE BOOK 396f1348b5364d578e1815e74e910b43 2014-09-15 
LBUMONT PA MTCH 7ddbf894941549e9b91b036947cb7328 2014-09-15 
@CaryMillsap 22
DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE( 
MODULE_NAME => 'OE BOOK', 
ACTION_NAME => ANY_ACTION // default 
) 
USERNAME MODULE_NAME ACTION_NAME START_TIME 
-------- ----------- -------------------------------- ---------- 
FCHANG OE BOOK 4a782ce58c4c462990547500d2fd308d 2014-09-15 
RSMITH OE SHIP 990a5426012841fa83c0cfa3690fad54 2014-09-15 
DJOHNSON OE PICK 9d92d1cceb87405f94a04d0224e1c7c4 2014-09-15 
FFORBES OE BOOK 2c920fc0fb91473ab4c141423e450715 2014-09-15 
FCHANG OE BOOK 396f1348b5364d578e1815e74e910b43 2014-09-15 
LBUMONT PA MTCH 7ddbf894941549e9b91b036947cb7328 2014-09-15 
@CaryMillsap 23
@CaryMillsap 
*** CLIENT ID:(10.17.21.198 FCHANG) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(4a782ce58c4c462990547500d2fd308d) ... 
PARSE ... 
EXEC ... 
WAIT ... 
... 
*** CLIENT ID:(10.17.22.57 FFORBES) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(2c920fc0fb91473ab4c141423e450715) ... 
PARSE ... 
WAIT ... 
EXEC ... 
... 
*** CLIENT ID:(10.17.22.241 FCHANG) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(396f1348b5364d578e1815e74e910b43) ... 
EXEC ... 
WAIT ... 
FETCH ... 
... 
24
ACTION Trace file line 
------------- ----------------------------------------------------------- 
@CaryMillsap 
*** CLIENT ID:(10.17.21.198 FCHANG) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(4a782ce58c4c462990547500d2fd308d) ... 
PARSE ... 
EXEC ... 
WAIT ... 
... 
*** CLIENT ID:(10.17.22.57 FFORBES) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(2c920fc0fb91473ab4c141423e450715) ... 
PARSE ... 
WAIT ... 
EXEC ... 
... 
*** CLIENT ID:(10.17.22.241 FCHANG) ... 
*** MODULE NAME:(OE BOOK) ... 
*** ACTION NAME:(396f1348b5364d578e1815e74e910b43) ... 
EXEC ... 
WAIT ... 
FETCH ... 
... 
25 
4a782ce5... 
4a782ce5... 
4a782ce5... 
4a782ce5... 
2c920fc0... 
2c920fc0... 
2c920fc0... 
2c920fc0... 
396f1348... 
396f1348... 
396f1348... 
396f1348...
$ mrskew --group='"$act $mod $client_id"' ... --top=10 *trc 
ACTION MODULE CLIENT_ID DURATION % CALLS MEAN MIN --------------------------------------------------------------- --------- ------ ------ -------- -------- c9a65ad7c62a4de9bb4ad118d9a5eda3 OE BOOK 10.17.23.41 AGREEN 3.162362 3.6% 604 0.005236 0.000000 b4748d88eea44d81a406e341ea36548f OE BOOK 10.17.22.14 GLAMB 3.115821 3.5% 604 0.005159 0.000000 f685757c77dd4b15a15d8ce811ee7390 OE BOOK 10.17.23.163 YJUSTICE 1.000578 1.1% 604 0.001657 0.000000 5d14953834e74063836678babf51e072 OE BOOK 10.17.22.227 USILVA 0.942317 1.1% 604 0.001560 0.000000 390c18ebfcd84e418b004c71bb3c0589 OE BOOK 10.17.21.63 WEVANS 0.914806 1.0% 604 0.001515 0.000000 2e5316d0cff448afa5f20de22c044409 OE BOOK 10.17.23.68 VMAYNARD 0.864778 1.0% 604 0.001432 0.000000 3db7b83fdad34b4289ca06cffaa5e711 OE BOOK 10.17.23.212 JSTRONG 0.786390 0.9% 604 0.001302 0.000000 f0135a649e124aefb8fb8069bb5bc16d OE BOOK 10.17.22.25 RHOPPER 0.780173 0.9% 604 0.001292 0.000000 93ff740851704d6dbcac5579e585dd61 OE BOOK 10.17.22.219 FWALLACE 0.758373 0.9% 604 0.001256 0.000000 ff784d033478490b899b5d04814a1ca8 OE BOOK 10.17.21.246 FROWLAND 0.750675 0.9% 604 0.001243 0.000000 2,275 others 75.188801 85.2% 10,915 0.006889 0.000000 -------------------------------------------------------------- --------- ------ ------ -------- -------- TOTAL (2,285) 88.265074 100.0% 16,955 0.005206 0.000000 @CaryMillsap 
26
$ mrskew --group='"$act $mod $client_id"' ... --top=10 *trc 
ACTION MODULE CLIENT_ID DURATION % CALLS MEAN MIN -------------------------------------------------------------- --------- ------ ------ -------- -------- c9a65ad7c62a4de9bb4ad118d9a5eda3 OE BOOK 10.17.23.41 AGREEN 3.162362 3.6% 604 0.005236 0.000000 b4748d88eea44d81a406e341ea36548f OE BOOK 10.17.22.14 GLAMB 3.115821 3.5% 604 0.005159 0.000000 f685757c77dd4b15a15d8ce811ee7390 OE BOOK 10.17.23.163 YJUSTICE 1.000578 1.1% 604 0.001657 0.000000 5d14953834e74063836678babf51e072 OE BOOK 10.17.22.227 USILVA 0.942317 1.1% 604 0.001560 0.000000 390c18ebfcd84e418b004c71bb3c0589 OE BOOK 10.17.21.63 WEVANS 0.914806 1.0% 604 0.001515 0.000000 2e5316d0cff448afa5f20de22c044409 OE BOOK 10.17.23.68 VMAYNARD 0.864778 1.0% 604 0.001432 0.000000 3db7b83fdad34b4289ca06cffaa5e711 OE BOOK 10.17.23.212 JSTRONG 0.786390 0.9% 604 0.001302 0.000000 f0135a649e124aefb8fb8069bb5bc16d OE BOOK 10.17.22.25 RHOPPER 0.780173 0.9% 604 0.001292 0.000000 93ff740851704d6dbcac5579e585dd61 OE BOOK 10.17.22.219 FWALLACE 0.758373 0.9% 604 0.001256 0.000000 ff784d033478490b899b5d04814a1ca8 OE BOOK 10.17.21.246 FROWLAND 0.750675 0.9% 604 0.001243 0.000000 2,275 others 75.188801 85.2% 10,915 0.006889 0.000000 -------------------------------------------------------------- --------- ------ ------ -------- -------- TOTAL (2,285) 88.265074 100.0% 16,955 0.005206 0.000000 $ mrskew --where='$act eq "c9a65ad7c62a4de9bb4ad118d9a5eda3"' *trc 
CALL-NAME DURATION % CALLS MEAN MIN MAX 
--------------------------- -------- ------ ----- -------- -------- -------- 
SQL*Net message from client 3.161922 100.0% 201 0.015731 0.001619 0.135835 
SQL*Net message to client 0.000440 0.0% 201 0.000002 0.000000 0.000027 
FETCH 0.000000 0.0% 201 0.000000 0.000000 0.000000 
EXEC 0.000000 0.0% 1 0.000000 0.000000 0.000000 
--------------------------- -------- ------ ----- -------- -------- -------- 
TOTAL (4) 3.162362 100.0% 604 0.005236 0.000000 0.135835 
@CaryMillsap 
27
@CaryMillsap 
Each 
experience 
gets its own 
unique id. 
28
@CaryMillsap 
...So you can 
measure and diagnose 
what people feel. 
29
@CaryMillsap 
...So you can 
measure and diagnose 
performance. 
30
@CaryMillsap 
For 
more... 
http://amzn.to/173bpzg 
31
@CaryMillsap 
Fin 
32

Contenu connexe

Tendances

UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction Locks
Kyle Hailey
 
OOUG: Oracle transaction locking
OOUG: Oracle transaction lockingOOUG: Oracle transaction locking
OOUG: Oracle transaction locking
Kyle Hailey
 

Tendances (20)

Agile Database Development with JSON
Agile Database Development with JSONAgile Database Development with JSON
Agile Database Development with JSON
 
APEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQLAPEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQL
 
Performance
PerformancePerformance
Performance
 
UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction Locks
 
Sangam 18 - Database Development: Return of the SQL Jedi
Sangam 18 - Database Development: Return of the SQL JediSangam 18 - Database Development: Return of the SQL Jedi
Sangam 18 - Database Development: Return of the SQL Jedi
 
Oracle Database 12c Application Development
Oracle Database 12c Application DevelopmentOracle Database 12c Application Development
Oracle Database 12c Application Development
 
Profiling Oracle with GDB
Profiling Oracle with GDBProfiling Oracle with GDB
Profiling Oracle with GDB
 
Redo internals ppt
Redo internals pptRedo internals ppt
Redo internals ppt
 
OOUG: Oracle transaction locking
OOUG: Oracle transaction lockingOOUG: Oracle transaction locking
OOUG: Oracle transaction locking
 
SQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX DevelopersSQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX Developers
 
Survey of Percona Toolkit
Survey of Percona ToolkitSurvey of Percona Toolkit
Survey of Percona Toolkit
 
Sql2
Sql2Sql2
Sql2
 
Advanced rac troubleshooting
Advanced rac troubleshootingAdvanced rac troubleshooting
Advanced rac troubleshooting
 
Cassandra EU - Data model on fire
Cassandra EU - Data model on fireCassandra EU - Data model on fire
Cassandra EU - Data model on fire
 
Troubleshooting JIRA & Confluence
Troubleshooting JIRA & ConfluenceTroubleshooting JIRA & Confluence
Troubleshooting JIRA & Confluence
 
data_all_oracle
data_all_oracledata_all_oracle
data_all_oracle
 
Tracking Data Updates in Real-time with Change Data Capture
Tracking Data Updates in Real-time with Change Data CaptureTracking Data Updates in Real-time with Change Data Capture
Tracking Data Updates in Real-time with Change Data Capture
 
Perth APAC Groundbreakers tour - SQL Techniques
Perth APAC Groundbreakers tour - SQL TechniquesPerth APAC Groundbreakers tour - SQL Techniques
Perth APAC Groundbreakers tour - SQL Techniques
 
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
Wildcard13 - warmup slides for the "Roundtable discussion with Oracle Profess...
 
Exploring OpenFaaS autoscalability on Kubernetes with the Chaos Toolkit
Exploring OpenFaaS autoscalability on Kubernetes with the Chaos ToolkitExploring OpenFaaS autoscalability on Kubernetes with the Chaos Toolkit
Exploring OpenFaaS autoscalability on Kubernetes with the Chaos Toolkit
 

Similaire à Most important "trick" of performance instrumentation

11thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp0111thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp01
Karam Abuataya
 
Wait Events 10g
Wait Events 10gWait Events 10g
Wait Events 10g
sagai
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
Sidney Chen
 
Oracle Diagnostics : Explain Plans (Simple)
Oracle Diagnostics : Explain Plans (Simple)Oracle Diagnostics : Explain Plans (Simple)
Oracle Diagnostics : Explain Plans (Simple)
Hemant K Chitale
 
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
Monowar Mukul
 

Similaire à Most important "trick" of performance instrumentation (20)

OpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developersOpenWorld Sep14 12c for_developers
OpenWorld Sep14 12c for_developers
 
UKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsUKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tips
 
11thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp0111thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp01
 
11 Things About11g
11 Things About11g11 Things About11g
11 Things About11g
 
Wait Events 10g
Wait Events 10gWait Events 10g
Wait Events 10g
 
PoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expériencePoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expérience
 
12c for Developers - Feb 2014
12c for Developers - Feb 201412c for Developers - Feb 2014
12c for Developers - Feb 2014
 
Oracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILMOracle 12c Automatic Data Optimization (ADO) - ILM
Oracle 12c Automatic Data Optimization (ADO) - ILM
 
OOW19 - Killing database sessions
OOW19 - Killing database sessionsOOW19 - Killing database sessions
OOW19 - Killing database sessions
 
12c Mini Lesson - Data Redaction
12c Mini Lesson - Data Redaction12c Mini Lesson - Data Redaction
12c Mini Lesson - Data Redaction
 
5 Cool Things About SQL
5 Cool Things About SQL5 Cool Things About SQL
5 Cool Things About SQL
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
 
Oracle dbms_xplan.display_cursor format
Oracle dbms_xplan.display_cursor formatOracle dbms_xplan.display_cursor format
Oracle dbms_xplan.display_cursor format
 
Addmrpt 1 1436_1462
Addmrpt 1 1436_1462Addmrpt 1 1436_1462
Addmrpt 1 1436_1462
 
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
Nagios Conference 2013 - Troy Lea - Leveraging and Understanding Performance ...
 
Oracle Diagnostics : Explain Plans (Simple)
Oracle Diagnostics : Explain Plans (Simple)Oracle Diagnostics : Explain Plans (Simple)
Oracle Diagnostics : Explain Plans (Simple)
 
audit_blog.ppt
audit_blog.pptaudit_blog.ppt
audit_blog.ppt
 
Debugging Ruby
Debugging RubyDebugging Ruby
Debugging Ruby
 
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
12c: Testing audit features for Data Pump (Export & Import) and RMAN jobs
 
How to find and fix your Oracle application performance problem
How to find and fix your Oracle application performance problemHow to find and fix your Oracle application performance problem
How to find and fix your Oracle application performance problem
 

Plus de Cary Millsap

Plus de Cary Millsap (7)

“Performance” - Dallas Oracle Users Group 2019-01-29 presentation
“Performance” - Dallas Oracle Users Group 2019-01-29 presentation“Performance” - Dallas Oracle Users Group 2019-01-29 presentation
“Performance” - Dallas Oracle Users Group 2019-01-29 presentation
 
Innovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and MonitoringInnovative Specifications for Better Performance Logging and Monitoring
Innovative Specifications for Better Performance Logging and Monitoring
 
The Most Important Things You Should Know about Oracle®
The Most Important Things You Should Know about Oracle®The Most Important Things You Should Know about Oracle®
The Most Important Things You Should Know about Oracle®
 
How to find and fix your Oracle-based application performance problem
How to find and fix your Oracle-based application performance problemHow to find and fix your Oracle-based application performance problem
How to find and fix your Oracle-based application performance problem
 
How to find and fix your Oracle-based application performance problem
How to find and fix your Oracle-based application performance problemHow to find and fix your Oracle-based application performance problem
How to find and fix your Oracle-based application performance problem
 
My Case for Agile
My Case for AgileMy Case for Agile
My Case for Agile
 
Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21Diagnosability versus The Cloud, Toronto 2011-04-21
Diagnosability versus The Cloud, Toronto 2011-04-21
 

Dernier

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 

Most important "trick" of performance instrumentation

  • 1. The most important trick of performance instrumentation Cary Millsap Accenture Enkitec Group and Method R Corporation @CaryMillsap OakTable World 2014 ·∙ San Francisco, California 12:50p–1:00p Monday 29 September 2014 © 2014 Method R Corporation 1 TM MeTHOD R
  • 2. @CaryMillsap Performance is not an attribute of a system. 2
  • 3. ID USERNAME MODULE START_TIME R SLR -- -------- ------- -------------------------- ----- --- 1 FCHANG OE BOOK 2014-09-15T08:14:22.189533 2.019 2.0 2 RSMITH OE SHIP 2014-09-15T08:14:23.673849 3.528 5.0 3 DJOHNSON OE PICK 2014-09-15T08:15:01.938816 1.211 5.0 4 FFORBES OE BOOK 2014-09-15T08:17:23.815511 0.716 2.5 5 FCHANG OE BOOK 2014-09-15T08:17:24.032562 1.917 2.5 6 LBUMONT PA MTCH 2014-09-15T08:17:42.019328 1.305 2.0 @CaryMillsap 3 This thing called an experience... #define FAST (R ≤ SLR)
  • 4. ID USERNAME MODULE R SLR FAST? -- -------- ------- ----- --- ----- 1 FCHANG OE BOOK 2.019 2.0 N 2 RSMITH OE SHIP 3.528 5.0 Y 3 DJOHNSON OE PICK 1.211 5.0 Y 4 FFORBES OE BOOK 0.716 2.5 Y 5 FCHANG OE BOOK 1.917 2.5 Y 6 LBUMONT PA MTCH 1.305 2.0 Y @CaryMillsap 4 This thing called an experience... #define FAST (R ≤ SLR)
  • 5. @CaryMillsap Performance is an attribute of each individual experience with a system. 5
  • 6. EXPERIENCE • id • task-id • user-id • ip-address • start-time • end-time • ERROR-code • WORK-done TASK • id • name • ... SQL • ID • Task-id • ... N 1 1 N @CaryMillsap 6
  • 8. @CaryMillsap Each experience gets its own unique id. 8
  • 10. @CaryMillsap Each experience gets its own unique id. 10
  • 11. @CaryMillsap You need to see this experience id in your session’s v$ data and your trace data. 11 ❶ ❷
  • 13. T UNDER CONSTRUCTION @CaryMillsap 13
  • 14. dbms_application_info.set_module( module_name => 'OE BOOK', action_name => sys_guid() -- 32-char hex string ); -- Your ‘book order’ code dbms_application_info.set_module( module_name => null, action_name => null ); @CaryMillsap 14 SQL, PL/SQL
  • 15. conn.ModuleName = "OE BOOK"; conn.ActionName = Guid.NewGuid().toString(); // Your ‘book order’ code conn.ModuleName = ""; conn.ActionName = ""; @CaryMillsap ODP.NET 15
  • 16. String metrics[] = new String[OraCxn.END_TO_END_STATE_INDEX_MAX]; metrics[END_TO_END_MODULE_INDEX] = "OE BOOK"; metrics[END_TO_END_ACTION_INDEX] = UUID.randomUUID().toString(); conn.setEndToEndMetrics(metrics, (short) 0); // Your ‘book order’ code metrics[END_TO_END_MODULE_INDEX] = ""; metrics[END_TO_END_ACTION_INDEX] = ""; conn.setEndToEndMetrics(metrics, (short) 0); @CaryMillsap 16 Java, ADF
  • 17. 17
  • 18. setClientInfo method supports JDBC DMS metrics setEndToEndMetrics is deprecated DBOP tag can be associated with application thread 18 New in 12.1
  • 19. 19 Oh, and... module and action lengths are limited by JDBC (Thanks Lasse Jenssen)
  • 20. @CaryMillsap Postscript A UUID in canonical form is 36 characters long (32 lowercase hexadecimal characters and 4 hyphens). However, v$session.action is VARCHAR2(32), so either we need to perform a more sophisticated transformation than toString upon the UUID (such as to remove the hyphens), or we have to choose another column in which to store it. We’re also investigating whether the new 12.1 begin_operation function and end_operation procedure in dbms_sql_monitor will accomplish our goal of assigning a unique id to each end-­‐user experience. The material at http:// docs.oracle.com/database/121/TGSQL/tgsql_monit.htm#TGSQL789 and http://docs.oracle.com/database/121/ARPLS/ d_sql_monitor.htm#ARPLS74779 looks promising. The combination of dbop_name and dbop_eid should be unique, but to meet my needs, these elements would have to render into the session’s trace data. These are the kinds of things we’re working on. 20
  • 22. experience id (PK) USERNAME MODULE_NAME ACTION_NAME START_TIME -------- ----------- -------------------------------- ---------- FCHANG OE BOOK 4a782ce58c4c462990547500d2fd308d 2014-09-15 RSMITH OE SHIP 990a5426012841fa83c0cfa3690fad54 2014-09-15 DJOHNSON OE PICK 9d92d1cceb87405f94a04d0224e1c7c4 2014-09-15 FFORBES OE BOOK 2c920fc0fb91473ab4c141423e450715 2014-09-15 FCHANG OE BOOK 396f1348b5364d578e1815e74e910b43 2014-09-15 LBUMONT PA MTCH 7ddbf894941549e9b91b036947cb7328 2014-09-15 @CaryMillsap 22
  • 23. DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE( MODULE_NAME => 'OE BOOK', ACTION_NAME => ANY_ACTION // default ) USERNAME MODULE_NAME ACTION_NAME START_TIME -------- ----------- -------------------------------- ---------- FCHANG OE BOOK 4a782ce58c4c462990547500d2fd308d 2014-09-15 RSMITH OE SHIP 990a5426012841fa83c0cfa3690fad54 2014-09-15 DJOHNSON OE PICK 9d92d1cceb87405f94a04d0224e1c7c4 2014-09-15 FFORBES OE BOOK 2c920fc0fb91473ab4c141423e450715 2014-09-15 FCHANG OE BOOK 396f1348b5364d578e1815e74e910b43 2014-09-15 LBUMONT PA MTCH 7ddbf894941549e9b91b036947cb7328 2014-09-15 @CaryMillsap 23
  • 24. @CaryMillsap *** CLIENT ID:(10.17.21.198 FCHANG) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(4a782ce58c4c462990547500d2fd308d) ... PARSE ... EXEC ... WAIT ... ... *** CLIENT ID:(10.17.22.57 FFORBES) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(2c920fc0fb91473ab4c141423e450715) ... PARSE ... WAIT ... EXEC ... ... *** CLIENT ID:(10.17.22.241 FCHANG) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(396f1348b5364d578e1815e74e910b43) ... EXEC ... WAIT ... FETCH ... ... 24
  • 25. ACTION Trace file line ------------- ----------------------------------------------------------- @CaryMillsap *** CLIENT ID:(10.17.21.198 FCHANG) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(4a782ce58c4c462990547500d2fd308d) ... PARSE ... EXEC ... WAIT ... ... *** CLIENT ID:(10.17.22.57 FFORBES) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(2c920fc0fb91473ab4c141423e450715) ... PARSE ... WAIT ... EXEC ... ... *** CLIENT ID:(10.17.22.241 FCHANG) ... *** MODULE NAME:(OE BOOK) ... *** ACTION NAME:(396f1348b5364d578e1815e74e910b43) ... EXEC ... WAIT ... FETCH ... ... 25 4a782ce5... 4a782ce5... 4a782ce5... 4a782ce5... 2c920fc0... 2c920fc0... 2c920fc0... 2c920fc0... 396f1348... 396f1348... 396f1348... 396f1348...
  • 26. $ mrskew --group='"$act $mod $client_id"' ... --top=10 *trc ACTION MODULE CLIENT_ID DURATION % CALLS MEAN MIN --------------------------------------------------------------- --------- ------ ------ -------- -------- c9a65ad7c62a4de9bb4ad118d9a5eda3 OE BOOK 10.17.23.41 AGREEN 3.162362 3.6% 604 0.005236 0.000000 b4748d88eea44d81a406e341ea36548f OE BOOK 10.17.22.14 GLAMB 3.115821 3.5% 604 0.005159 0.000000 f685757c77dd4b15a15d8ce811ee7390 OE BOOK 10.17.23.163 YJUSTICE 1.000578 1.1% 604 0.001657 0.000000 5d14953834e74063836678babf51e072 OE BOOK 10.17.22.227 USILVA 0.942317 1.1% 604 0.001560 0.000000 390c18ebfcd84e418b004c71bb3c0589 OE BOOK 10.17.21.63 WEVANS 0.914806 1.0% 604 0.001515 0.000000 2e5316d0cff448afa5f20de22c044409 OE BOOK 10.17.23.68 VMAYNARD 0.864778 1.0% 604 0.001432 0.000000 3db7b83fdad34b4289ca06cffaa5e711 OE BOOK 10.17.23.212 JSTRONG 0.786390 0.9% 604 0.001302 0.000000 f0135a649e124aefb8fb8069bb5bc16d OE BOOK 10.17.22.25 RHOPPER 0.780173 0.9% 604 0.001292 0.000000 93ff740851704d6dbcac5579e585dd61 OE BOOK 10.17.22.219 FWALLACE 0.758373 0.9% 604 0.001256 0.000000 ff784d033478490b899b5d04814a1ca8 OE BOOK 10.17.21.246 FROWLAND 0.750675 0.9% 604 0.001243 0.000000 2,275 others 75.188801 85.2% 10,915 0.006889 0.000000 -------------------------------------------------------------- --------- ------ ------ -------- -------- TOTAL (2,285) 88.265074 100.0% 16,955 0.005206 0.000000 @CaryMillsap 26
  • 27. $ mrskew --group='"$act $mod $client_id"' ... --top=10 *trc ACTION MODULE CLIENT_ID DURATION % CALLS MEAN MIN -------------------------------------------------------------- --------- ------ ------ -------- -------- c9a65ad7c62a4de9bb4ad118d9a5eda3 OE BOOK 10.17.23.41 AGREEN 3.162362 3.6% 604 0.005236 0.000000 b4748d88eea44d81a406e341ea36548f OE BOOK 10.17.22.14 GLAMB 3.115821 3.5% 604 0.005159 0.000000 f685757c77dd4b15a15d8ce811ee7390 OE BOOK 10.17.23.163 YJUSTICE 1.000578 1.1% 604 0.001657 0.000000 5d14953834e74063836678babf51e072 OE BOOK 10.17.22.227 USILVA 0.942317 1.1% 604 0.001560 0.000000 390c18ebfcd84e418b004c71bb3c0589 OE BOOK 10.17.21.63 WEVANS 0.914806 1.0% 604 0.001515 0.000000 2e5316d0cff448afa5f20de22c044409 OE BOOK 10.17.23.68 VMAYNARD 0.864778 1.0% 604 0.001432 0.000000 3db7b83fdad34b4289ca06cffaa5e711 OE BOOK 10.17.23.212 JSTRONG 0.786390 0.9% 604 0.001302 0.000000 f0135a649e124aefb8fb8069bb5bc16d OE BOOK 10.17.22.25 RHOPPER 0.780173 0.9% 604 0.001292 0.000000 93ff740851704d6dbcac5579e585dd61 OE BOOK 10.17.22.219 FWALLACE 0.758373 0.9% 604 0.001256 0.000000 ff784d033478490b899b5d04814a1ca8 OE BOOK 10.17.21.246 FROWLAND 0.750675 0.9% 604 0.001243 0.000000 2,275 others 75.188801 85.2% 10,915 0.006889 0.000000 -------------------------------------------------------------- --------- ------ ------ -------- -------- TOTAL (2,285) 88.265074 100.0% 16,955 0.005206 0.000000 $ mrskew --where='$act eq "c9a65ad7c62a4de9bb4ad118d9a5eda3"' *trc CALL-NAME DURATION % CALLS MEAN MIN MAX --------------------------- -------- ------ ----- -------- -------- -------- SQL*Net message from client 3.161922 100.0% 201 0.015731 0.001619 0.135835 SQL*Net message to client 0.000440 0.0% 201 0.000002 0.000000 0.000027 FETCH 0.000000 0.0% 201 0.000000 0.000000 0.000000 EXEC 0.000000 0.0% 1 0.000000 0.000000 0.000000 --------------------------- -------- ------ ----- -------- -------- -------- TOTAL (4) 3.162362 100.0% 604 0.005236 0.000000 0.135835 @CaryMillsap 27
  • 28. @CaryMillsap Each experience gets its own unique id. 28
  • 29. @CaryMillsap ...So you can measure and diagnose what people feel. 29
  • 30. @CaryMillsap ...So you can measure and diagnose performance. 30
  • 31. @CaryMillsap For more... http://amzn.to/173bpzg 31