Do you have SQL in your system that doesn’t use placeholders, like this? [3r3dhkb0z824v] select stuff from t where id=18432... [5wamvs45j6nh4] select stuff from t where id=4286... [ih5x9lgg492nk] select stuff from t where id=329971... Statements like these are generated dynamically by procedural programs written in Java, PHP, C#, etc. (or even PL/SQL if you work really […]
Connection pools help solve a big performance problem, but they also make using trace data more difficult. Method R Tools, part of the Method R Workbench software package, makes it easier to measure individual user response time experiences on connection pooling systems. Now you can look at performance problems the way you’ve always wanted to see them.
Many Oracle educators teach that reducing the number of PIO (“physical” I/O) calls should be the top priority of SQL optimization. However, in our field work, we commonly eliminate 50% or more of the response time from slow Oracle applications, even after they’ve been tuned to execute no PIO calls. The secret is that Oracle LIO […]
This paper describes how to use an Oracle Database tracing feature to write better, faster Oracle-based applications, regardless of whether your code is Java, PHP, C#, Ruby, Python, Perl, C, or something else.
Among many of my Oracle database administrator (DBA) friends, “agile” is widely regarded as a dirty word, a synonym for “sloppy.” However, adopting the principles of the Agile Manifesto (specifically, the implementation of the Agile Manifesto called Extreme Programming, or XP) has radically improved the commercial and technical success of projects that I’ve worked on.
Oracle’s extended SQL trace data stream contains a linear sequential record of every database call and every operating system call that the Oracle kernel executes in response to the code that you write.
When I wrote Optimizing Oracle Performance with Jeff Holt back in 2003, my goal was to define a reliable, teachable method for fixing software performance problems. After a few months of contentment having finishing the project, I began to notice a trend in how people were responding to it. Many of the questions coming in […]
Half the battle of writing good SQL is in understanding how the Oracle query optimizer analyzes your code and applies statistics in order to derive the “best” execution plan. The other half of the battle is successfully applying that knowledge to the databases that you manage.