tnsping response time can be misleading.
By glennf on Sep 19, 2005
"tnsping" works in the idle loop of the Oracle listener and will not respond until all connections queued by the listener have completed. On a busy system, new connections will be serviced before tnsping responses. This is especially apparent when the "queuesize" parameter has been increased in the listener.ora file. Generally, it is good to service real clients before a ping request, however if you are using this to determine response time, it is not valid. A real performance issue still may exist, but you won't know until digging further.
To get true connect times, I wrote a simple script with a "timex" in front of "select \* from dual;" through a listener. "myping.sh" measures the true connect time as well as getting the session count and timestamp. You have to modify the connect strings to connect to your database.
I hope this is helpful,
oracle@sumocat:~% myping.sh Usage: ./myping.sh intvl count oracle@sumocat:~% myping.sh 20 10 Date_and_Timestamp SessionCNT Connect_Time(sec) 09/19/05 11:08:05 20 0.260000 09/19/05 11:08:25 19 0.280000 09/19/05 11:08:46 19 0.270000 09/19/05 11:09:06 20 0.260000 09/19/05 11:09:27 20 0.270000