Skip to main content

ADF performance results

Doing a quick set of performance tests to just confirm a few things I have experienced with ADF. (I will update this post with new info after each test). All tests done on an XE db

Test 1) Read Only VO vs Updatable vs AM query vs SQL based VO - Scrollable 1000 batches of 1000
+- 300000 results

Read only vo query results: 203,31,47,31,31,47
AM Query timing  31,31,15,15,31,31
SQL timing:78,15,16,0,15,16
VO timing:11653,11919,9812,9485,9781,9734

So definitely a case for not using updateable VO's everywhere.

Test 2) Read Only VO vs Updatable vs SQL based VO - Range Paging 1000 batches of 1000
+- 300000 results

Read only vo query results: 125,47,63,32

SQL timing: 62,32,32,31
VO timing:125, 94, 47, 32

Test 3) Read Only VO vs Updatable vs SQL based VO - Range Paging FIRST_ROWS 1000 batches of 1000
+- 300000 results

Read only vo query results: 172,94,63,31

SQL timing: 78,62,15,15
VO timing:125, 78, 47, 47


NOTE: These are small localized tests to show some performance considerations and one size does not fit all.

Comments

  1. A point to consider though is that an updateable VO based on EO will cache the results in the EO cache - so subsequent queries on the same set of data might result in faster performance. In addition the EO cache can be shared among several VOs. You should be checking this too before making a call.

    ReplyDelete
  2. Yup thanks for the input, it is more an example of variance of changing a few tuning parameters as it stands. Will be expanding this with more results and scenarios as I go along.

    ReplyDelete

Post a Comment

Popular posts from this blog

MANIFEST.MF merge JDeveloper for an executable jar

Goto your project > properties. Then click on deployment in the menu. Edit or add a jar deployment profile. Fill in the details under jar options (select Include manifest and give it a main class name) Also remember that the merge functionality only works with a BLANK line at the end of the merge file. REALLY this caught me. My merge file contents: Class-Path: commons-codec-1.3.jar [...empty line here CRLF...]

OJDeploy: Documentation for the tool

Real DOCS:  http://docs.oracle.com/cd/E26098_01/user.1112/e17455/deploying_apps.htm#OJDUG645 OJDeploy Documentation if you run it from the command line - I keep looking for this so I though I would post it here so I remeber. Oracle JDeveloper Deploy 11.1.2.1.0.6081 Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. Usage:   ojdeploy -profile <name> -workspace <jws> [ -project <name> ] [ <options> ]   ojdeploy -buildfile <ojbuild.xml> [ <options> ]   ojdeploy -buildfileschema Arguments:   -profile               the name of the Profile to deploy   -workspace      full path to the JDeveloper Workspace file(.jws)   -project              name of the JDeveloper Project within the .jws where the Profile can be...

JBO-25013: TooManyObjectsException

oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[Key null ]. Ok so for you it may be trying to insert a duplicate record this should explain your problem (also check trigger they could be the cause.) NOTE: You can also try to create a new duplicate EO if you have a page with two VO's using the same EO. This could sort your problems. For me I needed to add a launch listener on my LOV and clear the cache of my vo. LOV <af:inputListOfValues id="NameId" popupTitle="#{bindings.Name.hints.label}" value="#{bindings.RolName1.inputValue}" label="#{bindings.RolName1.hints.label}" model="#{bindings.RolName1.listOfValuesModel}" required="#{bindings.RolName1.hints.mandatory}" columns="#{bindings.RolName1.hints.displayWidth}" shortDesc="#{bindings.RolName1.hints.tooltip}" launchPopupListener="#{backingBeanScope.backingBean.launchPop...