Presentation is loading. Please wait.

Presentation is loading. Please wait.

Strength. Strategy. Stability. The Application Profiler.

Similar presentations

Presentation on theme: "Strength. Strategy. Stability. The Application Profiler."— Presentation transcript:

1 Strength. Strategy. Stability. The Application Profiler

2 DEV-12 Transaction Scope & Record Locking Introduction- Dan Foreman Progress User since 1984 (V2.1) Guest speaker at lots of conferences dating back to 1990

3 PUG Challenge 2012 3 Introduction- Dan Foreman Author of: Progress Performance Tuning Guide Progress Database Admin Guide Progress System Tables Guide ProMonitor - Database Monitoring Tool Pro Dump&Load - Dump/Load with very short downtime no matter how large the DB is Balanced Benchmark – Progress load testing & simulation tool

4 Disclaimers I use the term 4GL not ABL The code examples in this presentation are character style (i.e. non-OO) because it makes it easier to use a larger font and fit the example on a slide The Application Profiler (AP) is not supported by PSC However I have never heard of anyone having issues with it PUG Challenge 2012 4

5 History Added by Tim Sargent in 1999 Initial Version - Progress V8.2A Still works as of V11.0 However the AP has not, to my knowledge, been enhanced in any meaningful way since V9 Initially used a ‘zecret’ startup option (-zprofile) PUG Challenge 2012 5

6 AP Basics Old Location: $DLC/src/samples/profiler Current Location: “Documentation CD” Excellent documentation (readme.doc) by the author Requires a GUI (prowin32.exe) license to use the supplied code But the code being profiled doesn’t need to be GUI code PUG Challenge 2012 6

7 AP Replacement An updated version of the AP called “Profiler Control Tool” is available on Progress Communities: PUG Challenge 2012 7

8 What Is Application Profiling? “A performance profiler is a common and useful tool for a software developer. In brief, a profiler provides a “profile” of a particular execution. A profiler generally provides timing information and call-tree information; with that, an engineer can analyze where their program is spending most of its time and what part of the application is calling what other part of the application.” PUG Challenge 2012 8

9 AP Basics Two Main Parts Generating the Profiling Statistics Analyzing the Profiling Statistics PUG Challenge 2012 9

10 AP Getting Started Client Startup Option: -profile Minimum entry in the Config file is: -filename There is also a PROFILER System Handle that can be used to specify the equivalents of the command line options PUG Challenge 2012 10

11 Other AP Options -listings will attempt to create COMPILE DEBUG-LISTINGs for the code being Profiled IF the source code is available in PROPATH This is a highly recommended option But if the PROPATH for the Client (probably using R-code) being profiled is different than the PROPATH for the source…watch out PUG Challenge 2012 11

12 AP Raw Data 1 05/06/2012 "Generic" 13:47:22 "Dan". 10 "promon-b.p" "c:\pm\profiler\src\dbg_promon-b_09a01752" 13292 8 "promon-a.p" "c:\pm\profiler\src\dbg_promon-a_07a01752" 35434 3 "promon2.p" "c:\pm\profiler\src\dbg_promon2_02a01752" 178 5 "promon-k.p" "c:\pm\profiler\src\dbg_promon-k_04a01752" 35250 12 "promon-n.p" "c:\pm\profiler\src\dbg_promon-n_0ba01752" 384 2 "val-key.p" "c:\pm\profiler\src\dbg_val-key_01a01752" 35537 1 "promon1.p" "c:\pm\profiler\src\dbg_promon1_00a01752" 51724 4 "promon-g.p" "c:\pm\profiler\src\dbg_promon-g_03a01752" 15680 6 "promon-c1.p" "c:\pm\profiler\src\dbg_promon-c1_05a01752" 63219. 3 544 5 2 0 0 1 1 3 2491 11 1 1 750 3 1 … PUG Challenge 2012 12

13 Samples Load the Profiling Data PUG Challenge 2012 13

14 Samples Session Data PUG Challenge 2012 14

15 PUG Challenge 2012 15

16 Other Stuff Statistics don’t include “User Think Time” PUG Challenge 2012 16

17 Other Related Diagnostic Tools _UserTableStat – Table I/O by Client Find out what Database I/O is being performed by the profiled code Won’t identify TEMP-TABLE I/O PUG Challenge 2012 17

18 Other Related Diagnostic Tools Client Log Manager Basic Client Startup Options: -clientlog query.txt -logentrytypes QryInfo -logginglevel 3 Or use the LOG-MANAGER System Handle PUG Challenge 2012 18

19 Client Log Sample QRYINFO Query Plan: C:\protmp\tmp\p91026_Untitled1.ped line 1 QRYINFO QueryId: 0x2cdb8e0 QRYINFO Type: FOR Statement QRYINFO Client Sort: N QRYINFO Scrolling: N QRYINFO Table:../s2k.Customer QRYINFO Indexes: CustNum QRYINFO Query Statistics: C:\protmp\tmp\p91026_Untitled1.ped line 1 QRYINFO QueryId: 0x2cdb8e0 QRYINFO DB Blocks accessed: QRYINFO../s2k : 2310 QRYINFO DB Reads: QRYINFO Table:../s2k.Customer : 1117 QRYINFO Index: Customer.CustNum : 1118 QRYINFO../s2k.Customer Table: QRYINFO 4GL Records: 676 QRYINFO Records from server: 676 QRYINFO Useful: 676 QRYINFO Failed: 0 QRYINFO Select By Client: N PUG Challenge 2012 19

20 Other Related Diagnostic Tools -zqil Zecret Query Info Log Client Startup Option Output written to Database.lg file PUG Challenge 2012 20

21 Example #1 One Index w/3 fields (f1+f2+f3) for each table where f1 = v1 andf2 = v2 andf3 = v3 -zqil Output ==Compiled Query Resolution Method: Query No. 1== (6135) 21:21:24 INDEX 28 3 3 EQUALITY (6157) PUG Challenge 2012 21

22 Example #2 One Index w/3 fields (f1+f2+f3) for each table where f1 = v1 andf2 <> v2 andf3 = v3 -zqil Output ==Compiled Query Resolution Method: Query No. 1== (6135) 21:21:24 INDEX 28 1 1 EQUALITY (6157) PUG Challenge 2012 22

23 PUG Challenge 2012 23 Conclusion Questions? Thank you for coming! Dan Foreman Mobile: +1 541 908 3437

Download ppt "Strength. Strategy. Stability. The Application Profiler."

Similar presentations

Ads by Google