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

ADF Encountered deferred syntax #{ in template text.

OracleJSP error: oracle.jsp.parse.JspParseException:  Error: Encountered deferred syntax #{ in template text.  If intended as a literal, escape it or set directive  deferredSyntaxAllowedAsLiteral This normally happens when you have some tag lib dependancy problems but this was  not the case for me... My problem: For some reason my model project had web stuff in it(public html etc)  so I had to remove the public html stuff from my project and manually edit the Model.jpr project file and remove the tag lib entries at the bottom o the file. Go figure.    

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

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...]