Presentation is loading. Please wait.

Presentation is loading. Please wait.

MON_GET_PKG_CACHE_STMT

Similar presentations


Presentation on theme: "MON_GET_PKG_CACHE_STMT"— Presentation transcript:

1 MON_GET_PKG_CACHE_STMT
Tips for Finding Problem SQL

2 MON_GET Table Functions
Introduced in 9.7 Lightweight monitoring interface IBM’s strategic direction for monitoring Access data with SQL No reset – start when database is activated Can emulate reset with this methodology: Consider extending the reset methodology with history tables

3 MON_GET_PKG_CACHE_STMT
Information from the package cache Data on what is currently in the package cache Can be exceptionally large if PCKCACHESZ is set to AUTOMATIC Data from SNAPSHOT FOR DYNAMIC SQL and more Includes data on static SQL

4 Using the MON_GET_PKG_CACHE_STMT Table Function
Parameters passed to MON_GET_PKG_CACHE_STMT: section_type executable_id search_args member Example FROM clause: FROM TABLE(MON_GET_PKG_CACHE_STMT ( 'D', NULL, NULL, -2)) AS T

5 SQL Example #1: WITH SUM_TAB (SUM_RR) AS ( SELECT FLOAT(SUM(ROWS_READ)) FROM TABLE(MON_GET_PKG_CACHE_STMT ( 'D', NULL, NULL, -2)) AS T) SELECT SUBSTR(STMT_TEXT,1,20) AS STATEMENT, ROWS_READ, DECIMAL(100*(FLOAT(ROWS_READ)/SUM_TAB.SUM_RR),5,2) AS PCT_TOT_RR, ROWS_RETURNED, CASE WHEN ROWS_RETURNED > 0 THEN DECIMAL(FLOAT(ROWS_READ)/FLOAT(ROWS_RETURNED),10,2) ELSE -1 END AS READ_EFFICIENCY, NUM_EXECUTIONS FROM TABLE(MON_GET_PKG_CACHE_STMT ( 'D', NULL, NULL, -2)) AS T, SUM_TAB ORDER BY ROWS_READ DESC FETCH FIRST 10 ROWS ONLY WITH UR;

6 Query Output STATEMENT ROWS_READ PCT_TOT_RR ROWS_RET READ_EFF #_EXEC
SELECT T1.ORDIADJUST 59.75 198 2526 SELECT T1.MARKFORDEL 515936 6.01 32246 16.00 SELECT T1.CATGROUP_I 411133 4.79 1.00 SELECT T1.CATENTRY_I 408720 4.76 104 Select srchattr.srch 360162 4.19 40125 8.97 321 SELECT T0.PX_PROMOTI 203140 2.36 -1.00 4239 SELECT T1.TIMECREATE 128140 1.49 44240 2.89 110600 SELECT JURST_ID FROM 119340 1.39 109 306 SELECT stl.IDENTIFIE 110528 1.28 23896 4.62 1173 SELECT INSRULE.INSRU 98280 1.14 273

7 SQL Example #2: WITH SUM_TAB (SUM_CPU) AS ( SELECT FLOAT(SUM(TOTAL_CPU_TIME)) FROM TABLE(MON_GET_PKG_CACHE_STMT ( 'D', NULL, NULL, -2)) AS T) SELECT SUBSTR(STMT_TEXT,1,20) AS STATEMENT, TOTAL_CPU_TIME, DECIMAL(100*(FLOAT(TOTAL_CPU_TIME)/SUM_TAB.SUM_CPU),5,2) AS PCT_TOT_CPU, DECIMAL(FLOAT(TOTAL_CPU_TIME)/FLOAT(NUM_EXECUTIONS),10,2) AS AVG_CPU_TIME_PER_EXE, NUM_EXECUTIONS FROM TABLE(MON_GET_PKG_CACHE_STMT ( 'D', NULL, NULL, -2)) AS T, SUM_TAB ORDER BY TOTAL_CPU_TIME DESC FETCH FIRST 10 ROWS ONLY WITH UR;

8 Query Output STATEMENT TOT_CPU_TIME PCT_TOT _CPU AVG_CPU_ TIME_PER_EXE
NUM_EXEC SELECT-T1.CATGROUP_I 27.07 64.81 442845 SELECT-T1.TIMECREATE 26.15 241.92 114605 SELECT-T0.PX_PROMOTI 2.22 540.09 4373 SELECT-T1.ORDIADJUST 1.88 708.50 2827 SELECT-T1.MARKFORDEL 1.86 58.46 33848 INSERT-INTO-DBAMON09 1.51 18 1.40 528.96 2808 1.11 78.99 14961 SELECT-CATFILTER.CAT 1.05 165.10 6788 995825 0.93 43.18 23060

9 Vote for Ember! Blog: http://db2commerce.com Twitter: @ember_crooks
LinkedIn: Useful links on this topic: Emulating Monitor Reset: Info Center page on MON_GET: My developerWorks article on mining the package cache:


Download ppt "MON_GET_PKG_CACHE_STMT"

Similar presentations


Ads by Google