These are some good sql statements which I use every now and again to check performance of my ColdFusion applications, and specifically to debug a few common oracle errors.
Get a list of open sessions (database connections). Should directly relate to the
restrict connections to x (whe using the
limit connections option) setting under each datasource in the ColdFusion administrator. You can also verify that connections are re-used when
maintain connections is on. A list of open sessions is also nice when running coldfusion in a clustered environment.
[sql] SELECT se.osuser,se.username,se.status,se.sid "O-sid", p.pid "O-pid" ,se.process "user pid", p.spid "wkg-pid", to_char(se.logon_time,'MM/DD/YY HH24:MI') "logon",se.machine FROM v$session se, v$process p WHERE addr=paddr and se.osuser is NOT NULL and se.username is NOT NULL ORDER BY se.osuser [/sql]
Get the number of cursors a session has open. Good when troubleshooing the Maximum Open Cursors Exceded error. Cursors are used in some stored procedures, but it should relate to the number of pooled statements currently open on each connection (As set for that datasource in the ColdFusion Administrator).
[sql] SELECT v.value as numopencursors ,s.machine ,s.osuser,s.username FROM V$SESSTAT v, V$SESSION s WHERE v.statistic# = 3 and v.sid = s.sid [/sql]
Get the total number of cursors a session has ever opened
[sql] SELECT v.value as numopencursors ,s.machine ,s.osuser,s.username FROM V$SESSTAT v, V$SESSION s WHERE v.statistic# = 2 and v.sid = s.sid [/sql]
These were all tested on Oracle 8.1.6 If you can verify that they work on other versions I'd love to hear about it.