I have been investigating some performance issues in our production system. One piece of SQL jumped out as having a very high execution count, coupled with non stellar performance, peaking at 20+ times a second per node, with an execution time of ~ 1 second. This does not tally up with the total executions/fetched I see in V$SQL, or the expected behaviour of the application.
Some info
- We have a limited performance toolkit, this data was from hour long statspack snaps. We are running standard edition so no AWR.
- It's running on a 2 node 11g RAC installation.
- Looking at figures for yesterday, I see > 500,000 executions per node in a 9 hour period. V$SQL is showing me ~ 50,000 executions from a first load time of 8 days ago.
- I get matching data when I directly query the statspack tables, not a dodgy SPREPORT.
- The executions per hour are spikey, we get 1 or 2 a day that are 10-20 times the average on each node. The times are different per node. The usual figures sound a little elevated from how the app is supposed to behave, but acceptable.
The dev manager insists the application cannot be behaving like this, which sounds reasonable. But what could be causing the mismatch in reporting?
It's possible that statspack is misbehaving, but why just periodically? Could it be a RAC issue (I'm totally new to RAC)?
Any suggestions on a cause or further troubleshooting tips?