Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

"n" methods to improve Oracle Apex performance

A unique look at many performance & efficiency considerations for your Oracle Application Express applications.
by Scott Wesley on 16 February 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of "n" methods to improve Oracle Apex performance

just
don't forget
the one
percenters...
forms style architecture
database on different tier
pop
culture
nerds?
you could loop through the array...
... or you could use bulk binding
the Apex page builder
Page Zero
the related application process
with declarative cascading LOVs
CSS - in the right place
Page Builder
Call an AJAX Process
Report Region Attributes
Application Builder
Page Source
Authentication Schemes
Page Attributes
Page Template
Shared Components
Authorisation Schemes
the law is strangling creativity
larry lessig - TED 2005
so let's consider...
Scott Wesley
Systems Consultant & Trainer
Sage Computing Services
"n" methods to improve Apex performance
http://www.amazon.com/Pro-Oracle-Application-Express-ebook/dp/B001U0PFCC
-- define some supporting objects
-- create a pipelined function that
communicates with LDAP
-- now you can just select from a "table"
...allows simpler conditions
setting everything up once...
do your conditions really need to run that SQL?
... much better
be aware of your pagination
if you can 'see' the number of rows...
... consider setting a (respectable) upper limit
so what's this I hear about AJAX?
que?
but I just want to do this?
easy!
don't forget about those scripts yet...
this is still potential
for some really clever stuff
what about "forms style"
when-validate-item
when something happens...
it just calls some PL/SQL
remember post-query network latency?
still has it's place in Apex
but without the lag
still consider the use of views....
...to stop multiple hits on the database
speaking of multiple db hits
and context switching between
SQL
PL/SQL
consider validation sequence
don't execute your validation...
...if some errors have occurred already
just package your conditions
in case Oracle changes the behaviour
of these persistent variables
new topic time
(again)
let's do SQL related stuff for a bit
ever put CSS in your SQL?
please don't...
want some reasons why?
some worthy thoughts on
page / application
item usage
first of all
you shouldn't really need to do this
hasn't Tom taught you to use
BIND VARIABLES
yet?
but if you
have
to use your own function
regardless of complexity
(or this can't be avoided)
consider using
scalar
subquery
caching
it will probably be more applicable to your own functions
usage of the v function...
is more likely
to be found
in a package
but it's more preferable to parameterise:
because it helps...
testing
& efficiency
which is why we're here today
and to stop bugs...
which is why you should be
familiar with this next function
why?
because of weirdness like this...
but why does this happen?!
because the documentation says so
shall we go back to the page builder?
close your eyes ;-)
think about
SQL
too
hinders re-use
can increase number of
need to change SQL to change format
impacts scalability
templates are there for this purpose
as is CSS
and item formatting attributes
hard parses
hmm...
network traffic
http://forums.oracle.com/forums/thread.jspa?threadID=486516
have a think about caching your pages & regions
add regions used on
multiple pages here
with your condition based on a shared function
but don't use page numbers
use page alias
you can also reduce network traffic
by adding simple javascript validation
correcting user entered data
before page submission
do I wait...
or do I give the user feedback
more feedback?
I'm running out of...
...and segues
but back in sequence...
surely you don't ever take advice...
from Oracle?
I know you know you should use this:
and not this:
this is probably more likely:
and that's ok.
because propensity for re-use in Apex
subscriptions
pl/sql packages
ui defaults
copy object
page
zero
shared components
plugins
how about debugging?
Apex 4.0 brings much improvement
= bottleneck
-- you may wish to add your own
or draw your own conclusion
it also pays to monitor your application
Weighted Page Views
Pop Quiz:
or tune a 1 second page
Should I tune a 3 second page
that runs once a day?
that executes a thousand times a day?
= 90 seconds / month waiting
= 8 hours / month waiting
do you know what else the documentation says?
so use COALESCE instead of NVL
...and don't be afraid to be verbose
a
final
word
it's not always the SQL
small table
big table
this might be no good...
but this could save minutes
just remember
a number of factors can impact performance
database version
hardware
data distribution
phase of the moon
server load
table size
statistics
table design
experiment
the motion sickness will wear off... momentarily.
See the full transcript