Set Processing 101

When I was reading the What’s New with Batch Processing in PeopleSoft Enterprise Oracle OpenWorld presentation some time ago, the following slide caught my attention:

What are the Problems with AppEngine

  • These programs can be complicated – and for a programmer they’re different
  • Same logic can be used Batch and Online – Really?
    • Different transactional model
    • Temp table behavior is very different
    • No restartability
  • Easy to write a poor performing App Engine Program
    • Since the introduction of PeopleCode, poor performing programs are the norm

 

Admittedly, I don’t have a lot of experience writing batch programs on Application Engine. But I believe the primary reason it is so easy to write poor-performing AE programs is that AE batch programs are better suited to be programmed using set processing. Set processing requires a different mind set to what procedural programmers are used to. I am new to it as well, so I find that this discussion in ITToolbox, and this followup provides valuable insights on how to perform set processing. Steve’s technique of what he calls partial cartesian joins is quite useful as well, especially for those not running an Oracle database.

One thought on “Set Processing 101

  1. Very nice blog ChiliJoe.

    Two comments about this article.
    First issue about the Oracle slide :
    Obviously, it appears that the author of this article is definitly not aware of the App Engine technology and I’ve lead several benchmarking projects. Of course we can notice sometimes poor performances with AppEngine but this techno is not the main reason. Here are some the issues
    First set is developer responsabilities (all of them are not good):
    - poor knowledge of data models (bad joins in SQL statement)
    - poor or inadequate SQL statement
    - inadequate algorithm (cursor vs batch queries)

    Second set is database issues but they are very easy to identify to fix (PeopleSoft provide a very good framework to trace AEs)
    - wrong / appropriate / not existing index in SQL statements
    - statistics not build
    - use PL/SQL whenever it’s possible
    Without being an Oracle Database specialist I regularly tune App Engine and I get some very good results checking only this few above items (check the Marc Gury web site – I started to tune PeopleSoft reading it’s book)

    Second issue:
    I don’t understand the purpose of “set processing” in your article. It’s a good tips but not necessair to know for AE batch programms.

    Nice thoughts from Paris (France)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>