discoveredbyte - java performance monitoring, tuning and optimization - key performance findings...

20
Consolidated Report of the Key Findings "Demo - Premium resolution(89)" The report focuses on the key indicators of the monitored case and significantly reduces the time required to analyze collected information and identify bottlenecks. It features the areas that influence performance of the application the most, whether it is individual execution or cumulative impact on the system due to high frequency of use, and/or areas that create abnormally high load on the system as a whole. Thresholds Name Red Alert Yellow Alert Heavy methods: 10000 (ms) 5000 (ms) Heavy pages: 10000 (ms) 5000 (ms) Heavy SQLs: 3000 (ms) 1000 (ms) Too Many SQLs: 300 (count) 100 (count) Heavy Threads: 25 (cpu %) 3 (cpu %) System Alerts Alerts section lists events with execution time or resource utilization exceeding predefined thresholds. To avoid excessive alerts while monitoring the cases impacted by significant performance degradation, the default threshold settings reflect behavior of an application performing worse than average. If the default thresholds values render too much information or too few results, they could be manually adjusted in 'Manage Case and Thresholds Settings' section of the analyzed case. If required, modified thresholds could be reset back to their default values. 6 methods with max execution time longer than 10 sec 3 methods with max execution time longer than 5 sec and less than 10 sec 2 pages with max execution time longer than 10 sec 3 pages with max execution time longer than 5 sec and less than 10 sec 1 SQL statement that was executed more that 300 times Threads 13 consuming on average more than 25% cpu each Threads 34, 70 consuming on average more than 3% cpu and less han 25% cpu each Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com 1

Upload: discoveredbyte

Post on 26-May-2015

165 views

Category:

Technology


4 download

DESCRIPTION

Key Performance Findings Report. The report focuses on the key indicators of the monitored case and significantly reduces the time required to analyze collected information and identify bottlenecks. It features the areas that influence performance of the application the most, whether it is individual execution or cumulative impact on the system due to high frequency of use, and/or areas that create abnormally high load on the system as a whole. System Alerts - Alerts section lists events with execution time or resource utilization exceeding predefined thresholds. Resources Utilization - The CPU graph shows total general CPU utilization by Java Virtual Machine (JVM), as well as consumption by the most demanding individual threads within JVM, as the percentage of the total server's CPU. Resources Utilization - The Memory graph shows memory utilization by the Java Virtual Machine. Memory consumption is expected to grow until it is released by the garbage collector (GC). Up and down fluctuations are normal and indicate that the system is healthy. However, behavior when memory drops to increasingly higher level and oscillations grow shorter, while top line lingers around maximal available memory, may indicate memory leak in the system, or simply higher demand that JVM can provide. In such case, the execution of the application is constrained by total available memory and JVM might eventually crash. User Experience - Additional factors that may impact user experience are network latency and browser-side processing time. The execution time shown on the graph represents minimum user wait time which could be achieved when user has adequately equipped workstation and negligible network delays. Heavy Methods - The section lists twenty methods with the longest execution time, along with the details pinpointing the reasons. For each of the listed in the table methods, report offers additional supporting information about repeatedly executed sub-methods, methods with highest net execution time, methods causing the highest CPU utilization, total time spent on database queries and the Heaviest SQL queries. Heavy Methods by Total Net - The section lists the methods with longest total net time, which are directly responsible for the duration of the execution. Net time is calculated as full duration time minus full duration time of methods that are called directly from the method in question. The list could contain low-level methods, including I/O methods and other event waits. All Queries Totals - The section highlights portion of the overall execution time that was spend on database queries. The data could be one of the quick indicators on whether the performance issues are database related. Heavy Queries by Total Duration - While one execution of the query doesn't take long time to execute, the queries listed in this section were executed enough times to account for the significant total execution time.

TRANSCRIPT

Page 1: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Consolidated Report of the Key Findings"Demo - Premium resolution(89)"

The report focuses on the key indicators of the monitored case and significantly reduces the time required to analyze collected information and identify bottlenecks.

It features the areas that influence performance of the application the most, whether it is individual execution or cumulative impact on the system due to high frequency of use, and/or areas that create abnormally high load on the system as a whole.

Thresholds

Name Red Alert Yellow Alert

Heavy methods: 10000 (ms) 5000 (ms)

Heavy pages: 10000 (ms) 5000 (ms)

Heavy SQLs: 3000 (ms) 1000 (ms)

Too Many SQLs: 300 (count) 100 (count)

Heavy Threads: 25 (cpu %) 3 (cpu %)

System Alerts

Alerts section lists events with execution time or resource utilization exceeding predefined thresholds.

To avoid excessive alerts while monitoring the cases impacted by significant performance degradation, the default threshold settings reflect behavior of an application performing worse than average. If the default thresholds values render too much information or too few results, they could be manually adjusted in 'Manage Case and Thresholds Settings' section of the analyzed case. If required, modified thresholds could be reset back to their default values.

6 methods with max execution time longer than 10 sec

3 methods with max execution time longer than 5 sec and less than 10 sec

2 pages with max execution time longer than 10 sec

3 pages with max execution time longer than 5 sec and less than 10 sec

1 SQL statement that was executed more that 300 times

Threads 13 consuming on average more than 25% cpu each

Threads 34, 70 consuming on average more than 3% cpu and less han 25% cpu each

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

1

Page 2: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Resources Utilization - CPU

The graph below shows total general CPU utilization by Java Virtual Machine (JVM), as well as consumption by the most demanding individual threads within JVM, as the percentage of the total server's CPU.

In HTML format, dragging mouse along the thread's graph will provide additional details at every point with significant JVM consumption. If utilization of the CPU exceeds 70% for the substantial amount of monitored time, application's performance could be constrained by the availability of the systems resources; hence, appropriate server scaling considerations might be required.

JVM CPU Usage Peak - 31% Avg - 8%

Threads 13 consuming on average more than 25% cpu eachThreads 34, 70 consuming on average more than 3% cpu and less han 25% cpu each

JVM CPU by Thread UtilizationIndividual Threads CPU against JVM CPU

20:20:15 20:21:30 20:21:45 20:22:00 20:22:15 20:22:30 20:22:45 20:23:00 20:23:15 20:23:30 20:23:45 20:24:00 20:24:30

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

2

Page 3: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Resources Utilization - Memory

The graph below shows memory utilization by the Java Virtual Machine.

Memory consumption is expected to grow until it is released by the garbage collector (GC). Up and down fluctuations are normal and indicate that the system is healthy. However, behavior when memory drops to increasingly higher level and oscillations grow shorter, while top line lingers around maximal available memory, may indicate memory leak in the system, or simply higher demand that JVM can provide. In such case, the execution of the application is constrained by total available memory and JVM might eventually crash.

JVM Memory Usage Peak - 396MB Avg - 247MB

JVM Memory UtilizationMax Available Memory 1029 MB

20:21:30 20:22:00 20:22:30 20:23:00 20:23:30 20:24:00 20:24:30 20:25:00 20:25:30

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

3

Page 4: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

User Experience

The graph below shows the top-level server-side execution that comes in response to the user actions or client-side scripts, which contributed to user wait time.

Additional factors that may impact user experience are network latency and browser-side processing time. The execution time shown on the graph represents minimum user wait time which could be achieved when user has adequately equipped workstation and negligible network delays.

2 pages with max execution time longer than 10 sec3 pages with max execution time longer than 5 sec and less than 10 sec

Top 20 displayed.

Page/Method User's IP Full Duration (ms)jsp_servlet._demo._lib._xschemes._flow.__assignmentmanagerscheme._jspService 192.168.10.124 50817

jsp_servlet._demo._lib._uicomposition.__navigationbar._jspService 192.168.10.124 50813

jsp_servlet._acme._jsp._pcomp.__tray_container._jspService 192.168.10.124 9284

jsp_servlet._demo._lib._xschemes._tray.__tray._jspService 192.168.10.124 8351

jsp_servlet._acme._jsp._demo.__login._jspService 192.168.10.124 5006

User Experience Server Side Execution

20:21:30 20:21:45 20:22:00 20:22:15 20:22:30 20:22:45 20:23:00 20:23:15 20:23:30 20:23:45 20:24:00 20:24:15 20:24:30

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

4

Page 5: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Heavy Methods

The section lists twenty methods with the longest execution time, along with the details pinpointing the reasons.

For each of the listed in the table methods, report offers additional supporting information about repeatedly executed sub-methods, methods with highest net execution time, methods causing the highest CPU utilization, total time spent on database queries and the Heaviest SQL queries.

6 methods with max execution time longer than 10 sec3 methods with max execution time longer than 5 sec and less than 10 sec

Top 20 displayed.

Method Full Duration (ms)weblogic.servlet.internal.ServletRequestImpl.run 50821

weblogic.servlet.internal.ServletRequestImpl.run 50817

com.prefvendor.mat.schemeext.comp.Reserve$ClearReserveMonitor.run 30007

com.prefvendor.mat.schemeext.comp.Reserve$ClearReserveMonitor.run 30001

weblogic.servlet.internal.ServletRequestImpl.run 9406

weblogic.servlet.internal.WebAppModule.start 7238

weblogic.servlet.internal.ServletRequestImpl.run 6672

HEAVY METHODS F: Full Duration TF: Total Full Duration N: Net Duration TN: Total Net Duration C: Countweblogic.servlet.internal.ServletRequestImpl.run F:50821 ms N:0 ms

Execution highlightsRepeated Sub Method Execution

com.prefvendor.plm.PlProcEx.getVarMetaInfo TF:29466 ms C:7738com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.getComplex TF:16446 ms C:7737com.prefvendor.pls.utils.DBUtils.executeQuery TF:13026 ms C:7737com.prefvendor.plm.PlProcEx.getComplexInfoBrand TF:16578 ms C:7736com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.lookupComplexInfoBrand TF:16549 ms C:7736com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.lookupComplexInfoBrand TF:16535 ms C:7736com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.getComplexFromComplexName TF:16522 ms C:7736com.prefvendor.plm.PlFlowEx.getComplexInfoBrand TF:34648 ms C:7735com.prefvendor.plm.db.db.XMLStorageMappingUtils.getDefaultXMLInstance TF:8368 ms C:7600com.prefvendor.schemestorage.SysSchemesStorageService.getXMLDocument TF:8342 ms C:7595

Heavy Method by Total Fullcom.prefvendor.mat.scheme.ControlStub.doStartStub TF:50688 ms TN:0 ms C:2dbyte.demo.CalculateSalaryIncreaseEx.execute TF:50479 ms TN:3 ms C:4com.prefvendor.schemeengine.connector.inforoot.InfoConnectorExecutor.execute TF:50479 ms TN:0 ms C:4dbyte.demo.CalculateSalaryIncreaseEx.method TF:50476 ms TN:9 ms C:4dbyte.demo.CalculateSalaryIncreaseEx.calculateDepartmentalAdjustments TF:50442 ms TN:80 ms C:4com.prefvendor.plm.PlFlowEx.getComplexInfoValue TF:46270 ms TN:34 ms C:7140

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

5

Page 6: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

com.prefvendor.plm.PlFlowEx.getComplexInfoBrand TF:31811 ms TN:36 ms C:7140com.prefvendor.plm.PlProcEx.getVarMetaInfo TF:26998 ms TN:71 ms C:7140com.prefvendor.plm.PlProcEx.getComplexInfoBrand TF:15238 ms TN:15 ms C:7140com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.lookupComplexInfoBrand TF:15211 ms TN:8 ms C:7140

Heavy Method by Total Netcom.prefvendor.imp.util.io.InfoPipe.readSocket TF:10389 ms TN:10389 ms C:7146com.prefvendor.pls.utils.SysPathUtils.getValue TF:6610 ms TN:6603 ms C:6438com.prefvendor.tools.infomodel.imp.DBImpl.loadDocument TF:6058 ms TN:6058 ms C:6017com.prefvendor.imp.util.io.InfoPipe.readSocket TF:5930 ms TN:5930 ms C:5926com.prefvendor.imp.util.io.InfoPipe.readSocket TF:3320 ms TN:3320 ms C:3192com.prefvendor.imp.util.io.InfoPipe.readSocket TF:1102 ms TN:1102 ms C:607com.prefvendor.imp.util.io.InfoPipe.readSocket TF:887 ms TN:887 ms C:598com.prefvendor.imp.util.io.InfoPipe.readSocket TF:829 ms TN:829 ms C:829com.prefvendor.imp.util.io.InfoPipe.readSocket TF:594 ms TN:594 ms C:584com.prefvendor.tools.infomodel.imp.DBImpl.loadDocument TF:592 ms TN:592 ms C:586

Heavy by CPU usageTotal CPU time: 23.85 sec. Total Average CPU Server Utilization: 8.98%CPU Time 1.61 sec CPU Server Utilization 15.36%

java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(SocketInputStream.java:129)

com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)CPU Time 1.73 sec CPU Server Utilization 14.25%

java.io.WinNTFileSystem.getBooleanAttributes(Native Method)java.io.File.exists(File.java:733)

sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:999)sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:966)

sun.misc.URLClassPath.findResource(URLClassPath.java:146)CPU Time 1.65 sec CPU Server Utilization 8.28%

java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(SocketInputStream.java:129)

com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)CPU Time 1.58 sec CPU Server Utilization 10.00%

com.prefvendor.imp.session.SessionHandle.getDBName(Unknown Root)com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.getComplexReserveComptroller(Unknown Root)

com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.getComplex(Unknown Root)com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.getComplexFromComplexName(Unknown Root)

com.prefvendor.plm.db.db.PlComplexInfoBrandDAOImplEx.lookupComplexInfoBrand(Unknown Root)CPU Time 1.83 sec CPU Server Utilization 9.40%

java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(SocketInputStream.java:129)

com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

6

Page 7: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

CPU Time 1.64 sec CPU Server Utilization 10.00% java.net.SocketInputStream.socketRead0(Native Method)

java.net.SocketInputStream.read(SocketInputStream.java:129)com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)

CPU Time 1.67 sec CPU Server Utilization 10.23% java.net.SocketInputStream.socketRead0(Native Method)

java.net.SocketInputStream.read(SocketInputStream.java:129)com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)

CPU Time 1.58 sec CPU Server Utilization 7.00%java.net.SocketInputStream.socketRead0(Native Method)

java.net.SocketInputStream.read(SocketInputStream.java:129)com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)

CPU Time 1.64 sec CPU Server Utilization 10.12% java.net.SocketInputStream.socketRead0(Native Method)

java.net.SocketInputStream.read(SocketInputStream.java:129)com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)

CPU Time 1.48 sec CPU Server Utilization 7.00%java.net.SocketOutputStream.socketWrite0(Native Method)

java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)java.net.SocketOutputStream.write(SocketOutputStream.java:1311)

com.prefvendor.imp.util.io.DataPipe.writeSocket(Unknown Root)com.prefvendor.imp.util.io.DataPipe.write(Unknown Root)

Total SQL executionF:14480 ms C:8342 28.49% of the method execution

Repeated SQL executionselect link_id, modify_date from plm_brand_info where complex_name = 'acme_complex_hinfo' TF:13007 ms C:7736

weblogic.servlet.internal.ServletRequestImpl.run F:50817 ms N:0 ms Execution highlights

Repeated Sub Method Executioncom.prefvendor.mat.SessionSync.lock0 TF:50803 ms C:3com.prefvendor.mat.SessionSync.lock TF:50803 ms C:3com.prefvendor.mat.scheme.SchemeProcor.invokeMethod TF:50800 ms C:2com.prefvendor.mat.scheme.SchemeProcor.invokeMethod TF:50800 ms C:2

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

7

Page 8: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

com.prefvendor.mat.scheme.SchemeProcor.lockSession TF:50799 ms C:2

com.prefvendor.mat.schemeext.comp.Reserve$ClearReserveMonitor.run F:30007 ms N:30007 ms Execution highlights

Method has no highlights

com.prefvendor.mat.schemeext.comp.Reserve$ClearReserveMonitor.run F:30001 ms N:30001 ms Execution highlights

Method has no highlights

weblogic.servlet.internal.ServletRequestImpl.run F:9406 ms N:0 msExecution highlights

Repeated Sub Method Executioncom.prefvendor.plm.infolist.ComplexUtil.isComplexProcVarVisible TF:267 ms C:241com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.prepareOneRow TF:379 ms C:100com.prefvendor.mat.scheme.ControlStub.schemeatText TF:289 ms C:62com.prefvendor.mat.scheme.ControlStub.schemeatValue TF:288 ms C:61com.prefvendor.mat.scheme.ctrl.schemeat.ValueSchemeatterStub.schemeat TF:287 ms C:60com.prefvendor.mat.schemeext.ctrl.schemexschemesctrl.SysSchemesListValueSchemeatter.schemeat TF:283 ms C:58com.prefvendor.mat.scheme.ctrl.LinkStub.renderStart TF:287 ms C:57com.prefvendor.mat.schemeext.ctrl.schemeext.SysSchemesLinkStub.renderLinkStart TF:287 ms C:57com.prefvendor.mat.schemeext.ctrl.schemexschemesctrl.SysSchemesListValueSchemeatter.schemeatSingleValue TF:278 ms C:53com.prefvendor.mat.schemeext.ctrl.action.ActionMultiselectCheckboxStub.renderEnd TF:344 ms C:44

Heavy Method by Netweblogic.servlet.jsp.TagFileClassLoader.findClass F:514 ms N:514 mscom.prefvendor.tools.infomodel.util.SchemaUtility.getSchema F:273 ms N:273 mscom.prefvendor.mat.schemeext.ctrl.schemePLMSysSchemesProcorFactory.newInstance F:1745 ms N:245 mscom.prefvendor.mat.schemeext.ctrl.schemexschemesctrl.SysSchemesAssignmentList.updateControl F:244 ms N:238 msweblogic.servlet.jsp.TagFileClassLoader.findClass F:198 ms N:198 mscom.prefvendor.mat.scheme.ctrl.infobound.DbgridStub.findColumnName F:190 ms N:190 msweblogic.servlet.jsp.TagFileClassLoader.findClass F:183 ms N:183 mscom.prefvendor.plm.db.db.DAOHelper.getStorageMapping F:628 ms N:182 mscom.prefvendor.mat.schemeext.ctrl.schemexschemesctrl.SysSchemesListValueSchemeatter.schemeat F:178 ms N:175 msweblogic.servlet.jsp.TagFileClassLoader.findClass F:150 ms N:150 ms

Heavy Method by Total Fullcom.prefvendor.mat.scheme.ControlStub.doEndStub TF:9020 ms TN:8 ms C:3

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

8

Page 9: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

com.prefvendor.mat.scheme.ControlStub.doEndStub TF:1533 ms TN:8 ms C:207weblogic.servlet.jsp.JspClassLoader.loadClass TF:1522 ms TN:0 ms C:19weblogic.servlet.jsp.JspClassLoader.findClass TF:1522 ms TN:1 ms C:19weblogic.servlet.jsp.TagFileClassLoader.findClass TF:1521 ms TN:1521 ms C:19weblogic.servlet.jsp.TagFileClassLoader.loadClass TF:1521 ms TN:0 ms C:19com.prefvendor.mat.scheme.ControlStub.doStartStub TF:1120 ms TN:1 ms C:98com.prefvendor.pcomp.schemetray.SysSchemesAssignmentListModule.getAttrDescriptor TF:741 ms TN:0 ms C:2com.prefvendor.mat.schemeext.action.ActionService.getActionDef TF:579 ms TN:4 ms C:40com.prefvendor.mat.scheme.ControlStub.getControl TF:519 ms TN:1 ms C:109

Heavy Method by Total Netweblogic.servlet.jsp.TagFileClassLoader.findClass TF:1521 ms TN:1521 ms C:19com.prefvendor.mat.schemeext.action.ActionService.newInstance TF:463 ms TN:463 ms C:18com.prefvendor.mat.scheme.ctrl.infobound.DbgridStub.findColumnName TF:191 ms TN:191 ms C:2com.prefvendor.mat.schemeext.ctrl.schemexschemesctrl.SysSchemesListValueSchemeatter.schemeat TF:221 ms TN:177 ms C:43

Heavy by CPU usageTotal CPU time: 3.48 sec. Total Average CPU Server Utilization: 12.59%CPU Time 2.04 sec CPU Server Utilization 24.49%

java.io.FileInputStream.readBytes(Native Method)java.io.FileInputStream.read(FileInputStream.java:220)

weblogic.utils.io.DataIO.readFully(DataIO.java:351)weblogic.utils.io.DataIO.readFully(DataIO.java:328)

weblogic.utils.classloaders.FileSource.getBytesInternal(FileSource.java:80)CPU Time 0.67 sec CPU Server Utilization 6.90%

java.io.FileInputStream.readBytes(Native Method)java.io.FileInputStream.read(FileInputStream.java:220)

weblogic.utils.io.DataIO.readFully(DataIO.java:351)weblogic.utils.io.DataIO.readFully(DataIO.java:328)

weblogic.utils.classloaders.FileSource.getBytesInternal(FileSource.java:80)Total SQL execution

F:150 ms C:23 1.59% of the method execution

weblogic.servlet.internal.WebAppModule.start F:7238 ms N:1 msExecution highlights

Repeated Sub Method Executioncom.prefvendor.imp.util.reflection.proxy.ProxyClassGenerator.methodMethod TF:1750 ms C:1468com.prefvendor.thirdparty.javassist.CtNewMethod.make TF:1458 ms C:1300com.prefvendor.thirdparty.javassist.CtNewMethod.make TF:1457 ms C:1300com.prefvendor.thirdparty.javassist.compiler.Javac.compile TF:1395 ms C:1289com.prefvendor.thirdparty.javassist.compiler.Javac.compileMethod TF:1201 ms C:1142com.prefvendor.thirdparty.javassist.compiler.ast.MethodDecl.accept TF:763 ms C:728com.prefvendor.thirdparty.javassist.compiler.CodeGen.atMethodDecl TF:763 ms C:728com.prefvendor.thirdparty.javassist.compiler.CodeGen.atMethodBody TF:722 ms C:689com.prefvendor.thirdparty.javassist.compiler.MemberCodeGen.atTryStmnt TF:714 ms C:681

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

9

Page 10: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

com.prefvendor.thirdparty.javassist.compiler.Parser.parseMethod2 TF:274 ms C:264Heavy Method by Net

com.prefvendor.com.Consumer.getLocalClient F:4122 ms N:874 mscom.prefvendor.xml.jaxp.PlDocumentBuilderImpl.parse F:221 ms N:219 mscom.prefvendor.imp.objectprotocol.AbstractObjectProtocol.deserializePersistentBrands F:164 ms N:162 mscom.prefvendor.xml.jaxp.PlDocumentBuilderFactoryImpl.setAttribute F:88 ms N:88 mscom.prefvendor.PlNewIntermethodLockImpl.acquire F:98 ms N:86 mscom.prefvendor.imp.session.SessionFactory.newSession F:424 ms N:82 ms

Heavy Method by Total Fullcom.prefvendor.mat.element.AdviceComptroller.getListerners TF:2351 ms TN:0 ms C:3com.prefvendor.mat.element.AdviceComptroller.getListenersFromConfigFile TF:2351 ms TN:45 ms C:3com.prefvendor.mat.schemeext.config.HttpConfigReader.loadConfigFiles TF:2002 ms TN:96 ms C:48com.prefvendor.mat.schemeext.config.HttpConfigReader.loadConfigFiles TF:1885 ms TN:5 ms C:10com.prefvendor.mat.schemeext.config.HttpConfigReader.loadConfigFiles TF:1222 ms TN:50 ms C:120com.prefvendor.mat.schemeext.config.ConfigFile.loadXML TF:724 ms TN:6 ms C:459com.prefvendor.imp.util.reflection.proxy.ProxyClassGenerator.methodInterface TF:713 ms TN:2 ms C:18com.prefvendor.imp.util.reflection.proxy.ProxyClassGenerator.methodMethod TF:665 ms TN:8 ms C:440com.prefvendor.mat.schemeext.config.ConfigFile.loadXML TF:664 ms TN:2 ms C:351com.prefvendor.mat.element.AdviceComptroller$ApplicationEventAdviceSender.notifyStartEventForListener TF:567 ms TN:0 ms C:2

Heavy Method by Total Netcom.prefvendor.xml.jaxp.PlDocumentBuilderImpl.parse TF:427 ms TN:425 ms C:122com.prefvendor.xml.jaxp.PlDocumentBuilderFactoryImpl.newDocumentBuilder TF:256 ms TN:255 ms C:256com.prefvendor.xml.jaxp.PlFactoryFinder.find TF:240 ms TN:233 ms C:240com.prefvendor.xml.jaxp.PlDocumentBuilderFactoryImpl.newDocumentBuilder TF:208 ms TN:208 ms C:206com.prefvendor.xml.jaxp.PlFactoryFinder.find TF:193 ms TN:188 ms C:193com.prefvendor.imp.objectprotocol.AbstractObjectProtocol.deserializePersistentBrands TF:167 ms TN:163 ms C:3com.prefvendor.xml.jaxp.PlDocumentBuilderFactoryImpl.newDocumentBuilder TF:149 ms TN:149 ms C:148com.prefvendor.xml.jaxp.PlDocumentBuilderImpl.parse TF:139 ms TN:139 ms C:126com.prefvendor.xml.jaxp.PlFactoryFinder.find TF:134 ms TN:130 ms C:134com.prefvendor.mat.schemeext.config.HttpConfigReader.loadConfigFiles TF:2002 ms TN:96 ms C:48

Heavy by CPU usageTotal CPU time: 5.05 sec. Total Average CPU Server Utilization: 28.71%CPU Time 2.12 sec CPU Server Utilization 28.71%

java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(SocketInputStream.java:129)

com.prefvendor.imp.util.io.DataPipe.readSocket(Unknown Root)com.prefvendor.imp.util.io.DataPipe.readLength(Unknown Root)

com.prefvendor.imp.util.io.DataPipe.getIncomingMessageLength(Unknown Root)CPU Time 2.93 sec CPU Server Utilization 28.71%

java.util.zip.ZipFile.getEntry(Native Method)java.util.zip.ZipFile.getEntry(ZipFile.java:161)

java.util.jar.JarFile.getEntry(JarFile.java:208)java.util.jar.JarFile.getJarEntry(JarFile.java:191)

sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:757)Total SQL execution

F:45 ms C:7 0.62% of the method execution

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

10

Page 11: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

weblogic.servlet.internal.ServletRequestImpl.run F:6672 ms N:1 msExecution highlights

Repeated Sub Method Executioncom.prefvendor.PlObject.getFileEx2 TF:780 ms C:40com.prefvendor.filling.imp.FillingComptroller.getFile TF:763 ms C:40com.prefvendor.filling.imp.FillingComptroller.namedGetFile TF:345 ms C:40com.prefvendor.filling.imp.FillingComptroller.getFile TF:345 ms C:40com.prefvendor.methodmanager.configuration.info.action.service.imp.AssignmentSpaceSelectionMethodDefinitionFactory.getSelectionMethodDefinition TF:1185 ms C:30com.prefvendor.methodmanager.configuration.info.action.service.imp.AssignmentSpaceSelectionMethodDefinitionFactory.getListSelectionMethod TF:521 ms C:21com.prefvendor.methodmanager.configuration.info.action.service.imp.ParameterValueSqlListSelectionMethod.execQuery TF:449 ms C:18com.prefvendor.methodmanager.configuration.info.action.service.imp.ParameterValueSqlListSelectionMethod.setSelectItem TF:447 ms C:16com.prefvendor.services.set.imp.SetSyncServiceImpl.load TF:158 ms C:12com.prefvendor.util.synchronization.imp.DestinationPortfolio.getFilling TF:97 ms C:10

Heavy Method by Netcom.prefvendor.plm.app.ReserveComptrollerBuilder.init F:571 ms N:495 mscom.prefvendor.imp.util.io.InfoPipe.readSocket F:258 ms N:258 mscom.prefvendor.imp.util.io.InfoPipe.readSocket F:81 ms N:81 mscom.prefvendor.imp.util.io.InfoPipe.readSocket F:73 ms N:73 ms

Heavy Method by Total Fullcom.prefvendor.methodmanager.configuration.set.AssignmentSpaceSetListener.loadConfigurableActions TF:1576 ms TN:33 ms C:2com.prefvendor.methodmanager.configuration.configmanager.converter.SetConverterFactory.createSetConverter TF:1539 ms TN:15 ms C:2com.prefvendor.methodmanager.configuration.configmanager.converter.ActionSetItemConverter.loadSetItems TF:1524 ms TN:2 ms C:2com.prefvendor.methodmanager.configuration.utils.ConfigServiceUtil.getActionFromElement TF:1021 ms TN:29 ms C:7com.prefvendor.methodmanager.configuration.utils.ConfigServiceUtil.getActionParameter TF:990 ms TN:2 ms C:3com.prefvendor.methodmanager.configuration.utils.ConfigServiceUtil.getActionParamValue TF:988 ms TN:1 ms C:3com.prefvendor.methodmanager.configuration.set.AssignmentSpaceSetListener.cacheReroots TF:968 ms TN:0 ms C:2com.prefvendor.methodmanager.res.AssignmentSpaceConfigureableReroots.cacheReroots TF:968 ms TN:1 ms C:2com.prefvendor.methodmanager.configuration.info.action.service.imp.AssignmentSpaceSelectionMethodDefinitionFactory.getSelectionMethodDefinition TF:845 ms TN:2 ms C:16com.prefvendor.PlObject.getFileEx2 TF:780 ms TN:0 ms C:40

Heavy Method by Total Netcom.prefvendor.imp.util.io.InfoPipe.readSocket TF:316 ms TN:316 ms C:17com.prefvendor.imp.util.io.InfoPipe.readSocket TF:169 ms TN:169 ms C:118com.prefvendor.imp.util.io.InfoPipe.readSocket TF:122 ms TN:122 ms C:14com.prefvendor.services.set.imp.RerootWrapper.loadBundleDefinition TF:169 ms TN:105 ms C:4com.prefvendor.imp.util.io.InfoPipe.readSocket TF:98 ms TN:98 ms C:12com.prefvendor.util.synchronization.imp.DestinationPortfolio.getFilling TF:97 ms TN:97 ms C:10com.prefvendor.imp.util.io.InfoPipe.readSocket TF:96 ms TN:96 ms C:12com.prefvendor.imp.util.io.InfoPipe.readSocket TF:83 ms TN:83 ms C:56com.prefvendor.imp.util.io.InfoPipe.readSocket TF:81 ms TN:81 ms C:18com.prefvendor.imp.util.io.InfoPipe.readSocket TF:67 ms TN:67 ms C:47

Total SQL executionF:611 ms C:59 9.16% of the method execution

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

11

Page 12: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Repeated SQL executionselect b.brand_name, b.stamp_text from plmbrand_info a, plmdd_brand_info b where (any a.superbrand='plm_file' and not superbrand='plm_portfolio' and not superbrand = 'plm_rm_schemeal_record' and not superbrand = 'plm_rm_schemeal_rec_structure') and (a.brand_name = b.brand_name) and (b.nls_key = 'en') and (b.business_rule_id = '1126734901') and not (b.life_state = 3) order by 1,2

TF:340 ms C:2

Heavy SQLselect b.brand_name, b.stamp_text from plmbrand_info a, plmdd_brand_info b where (any a.superbrand='plm_file' and not superbrand='plm_portfolio' and not superbrand = 'plm_rm_schemeal_record' and not superbrand = 'plm_rm_schemeal_rec_structure') and (a.brand_name = b.brand_name) and (b.nls_key = 'en') and (b.business_rule_id = '1126734901') and not (b.life_state = 3) order by 1,2

F:259 ms

select b.brand_name, b.stamp_text from plmbrand_info a, plmdd_brand_info b where (any a.superbrand='plm_file' and not superbrand='plm_portfolio' and not superbrand = 'plm_rm_schemeal_record' and not superbrand = 'plm_rm_schemeal_rec_structure') and (a.brand_name = b.brand_name) and (b.nls_key = 'en') and (b.business_rule_id = '1126734901') and not (b.life_state = 3) order by 1,2

F:81 ms

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

12

Page 13: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Heavy Methods by Total Net

The section lists the methods with longest total net time, which are directly responsible for the duration of the execution.

Net time is calculated as full duration time minus full duration time of methods that are called directly from the method in question. The list could contain low-level methods, including I/O methods and other event waits.

Top 20 displayed.

Method Total Duration (ms)Executed Number of Times

com.prefvendor.mat.schemeext.comp.Reserve$ClearReserveMonitor.run 120010 4

com.prefvendor.mat.SessionSync.lock0 53330 97

com.prefvendor.imp.util.io.InfoPipe.readSocket 29403 21088

weblogic.servlet.internal.ChunkOutput.writeStream 23046 58

com.prefvendor.tools.infomodel.imp.DBImpl.loadDocument 7035 6987

com.prefvendor.pls.utils.SysPathUtils.getValue 6603 6438

weblogic.servlet.internal.ChunkOutput.flush 4916 2525

weblogic.servlet.internal.ServletStubImpl.execute 3723 339

Heavy Methods by Total Net Duration

125k

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

13

Page 14: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

weblogic.servlet.internal.FilterChainImpl.add 3130 53

weblogic.servlet.jsp.TagFileClassLoader.findClass 2507 91

weblogic.servlet.jsp.JspClassLoader.findClass 1500 135

com.prefvendor.imp.util.io.InfoPipe.writeSocket 1044 1044

com.prefvendor.com.Consumer.getLocalClient 874 1

com.prefvendor.xml.jaxp.PlDocumentBuilderImpl.parse 829 348

com.prefvendor.mat.schemeext.action.ActionService.newInstance 792 41

com.prefvendor.res.RerootBundle.loadBundle 685 56

com.prefvendor.xml.jaxp.PlDocumentBuilderFactoryImpl.newDocumentBuilder 680 678

weblogic.servlet.FileServlet.service 644 95

com.prefvendor.thirdparty.javassist.compiler.MemberResolver.lookupMethod 621 1459

com.prefvendor.xml.jaxp.PlFactoryFinder.find 614 630

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

14

Page 15: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

All Queries Totals

The section highlights portion of the overall execution time that was spend on database queries.

The data could be one of the quick indicators on whether the performance issues are database related.

Total Duration (ms) CountAll Queries Total: 17224(ms) 8593

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

15

Page 16: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Heavy Queries

The section lists twenty individual queries with the longest execution time.

In many cases, these queries are the "low hanging fruit" for performance improvement; optimization of the queries could be one of the first steps in enhancing the application performance.

Top 20 displayed.

Statement Duration (ms) Executed Method

select b.brand_name, b.stamp_text from plmbrand_info a, plmdd_brand_info b where (any a.superbrand='plm_file' and not superbrand='plm_portfolio' and not superbrand = 'plm_rm_schemeal_record' and not superbrand = 'plm_rm_schemeal_rec_structure') and (a.brand_name = b.brand_name) and (b.nls_key = 'en') and (b.business_rule_id = '1126734901') and not (b.life_state = 3) order by 1,2

259com.prefvendor.methodmanager.configuration.info.action.service.imp.ParameterValueSqlListSelectionMethod.execQuery

select b.brand_name, b.stamp_text from plmbrand_info a, plmdd_brand_info b where (any a.superbrand='plm_file' and not superbrand='plm_portfolio' and not superbrand = 'plm_rm_schemeal_record' and not superbrand = 'plm_rm_schemeal_rec_structure') and (a.brand_name = b.brand_name) and (b.nls_key = 'en') and (b.business_rule_id = '1126734901') and not (b.life_state = 3) order by 1,2

81com.prefvendor.methodmanager.configuration.info.action.service.imp.ParameterValueSqlListSelectionMethod.execQuery

select sum(col7) as new_salary, sum(col4*col7/col3) as new_bonus from plm_acme_complex_hinfo where col0 in (select employee_id from acme_employee_portfolio 80 dbyte.demo.CalculateSalaryIncreaseEx.calc

ulateDepartmentalAdjustmentsOpt

select sum(col7) as new_salary, sum(col4*col7/col3) as new_bonus from plm_acme_complex_hinfo where col0 in (select employee_id from acme_employee_portfolio 69 dbyte.demo.CalculateSalaryIncreaseEx.calc

ulateDepartmentalAdjustmentsOpt

select upper(entity_name),link_id,entity_name,entity_brand,link_cnt,link_owner from plm_portfolio where (is_reference is null or is_reference = 0) order by 1 68 com.prefvendor.mat.schemeext.ctrl.db.DBPo

rtfolioTreeNode.addChildNodes

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT

65com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

16

Page 17: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

select link_id, entity_name, portfolio_id, portfolio_path, position from plm_portfolio where link_id in (select ancestoid from plm_portfolio where link_id in ('1210665227') and is_hidden = false) order by link_id, position 64 com.prefvendor.imp.objectpath.query.BaseQ

uery.getBaseQueryImpl

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

63com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

63com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

select sum(col7) as new_salary, sum(col4*col7/col3) as new_bonus from plm_acme_complex_hinfo where col0 in (select employee_id from acme_employee_portfolio 62 dbyte.demo.CalculateSalaryIncreaseEx.calc

ulateDepartmentalAdjustmentsOpt

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

60com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

59

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

17

Page 18: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 101 201 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

58com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

58com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 101 201 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

57com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

18

Page 19: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 201 301 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

57com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 1 101 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

57com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

SELECT X.* ,sd1.col0 AS sd1_col0,sd1.col1 AS sd1_col1,sd1.col2 AS sd1_col2,sd1.col5 AS sd1_col5,sd1.col6 AS sd1_col6,wi.link_id AS wlink_id,wi.plm_def_id AS wplm_def_id,wi.flow_id AS wflow_id,sd1.link_id AS sd1_link_id FROM (SELECT q.filling_brand AS q_filling_brand,q.item_brand AS q_item_brand,q.dependency_brand AS q_dependency_brand,q.routeid AS q_routeid,q.event AS q_event,q.item_name AS q_item_name,q.assignment_subject AS q_assignment_subject,q.assignment_name AS q_assignment_name,q.name AS q_name,q.sent_by AS q_sent_by,q.link_id AS q_link_id,q.priority AS q_priority,q.point_id AS q_item_id,q.date_sent AS q_date_sent,q.assignment_state AS q_assignment_state,q.due_date AS q_due_date,q.assignment_number AS q_assignment_number,q.source_db AS q_source_db,q.source_event AS q_source_event FROM plm rank q WHERE ((q.delete_flag=0 AND q.dependency_brand IN ('0','1','2','3','4','5','6'))) ENABLE(RETURN_RANGE 201 301 101 'q.date_sent DESC,q.link_id ASC', ROW_BASED)) X LEFT OUTER JOIN plm_acme_complex_hinfo sd1 ON sd1.flow_id=X.q_routeid LEFT OUTER JOIN plmactionitem wi ON wi. rank_id=X.q_link_id ORDER BY X.q_date_sent DESC,X.q_link_id ASC

56com.prefvendor.plm.assignmentlist.imp.AssignmentListReservedCollection.runSQLInternal

select sum(col7) as new_salary, sum(col4*col7/col3) as new_bonus from plm_acme_complex_hinfo where col0 in (select employee_id from acme_employee_portfolio 53 dbyte.demo.CalculateSalaryIncreaseEx.calc

ulateDepartmentalAdjustmentsOpt

select distinct flow_id from plm_acme_complex_hinfo where col0 in (select employee_id from acme_employee_portfolio) 52 dbyte.demo.CalculateSalaryIncreaseEx.calculateDepartmentalAdjustments

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

19

Page 20: DiscoveredByte - Java Performance Monitoring, Tuning and Optimization - Key Performance Findings report - Demo

Heavy Queries by Total Duration

While one execution of the query doesn't take long time to execute, the queries listed in this section were executed enough times to account for the significant total execution time; hence, impacting overall performance of the application.

If single execution of the query takes long time, and the query is executed multiple times, it might get listed in the 'Heavy Queries' section as well. If the queries could not be executed fewer times, retrieval and cashing of the data may represent one of the viable solutions improving efficiency.

Top 20 displayed.

1 SQL statement that was executed more that 300 times

StatementTotal

Duration (ms)

Count Executed Method

select link_id, modify_date from plm_brand_info where complex_name = 'acme_complex_hinfo' 13020 7741 com.prefvendor.pls.utils.DBUtils.executeQuery

Discovered Byte © 2013. All rights reserved www.DiscoveredByte.com

20