Linuxでコマンド実行時間を取るのに便利なtimeコマンドですが、sqlplusとかだと途中で入力受付になってそこで止まってしまって計測できないことがあります。
そういう時にヒアドキュメントなんですが、いつも忘れちゃうのでメモ。
$ time sqlplus benchmark/testasa @test.sql<<'EOD'
exit;
EOD
これでtest.sqlの中に書かれているsqlをがーっと実行したあとに勝手に抜けて、実行時間が画面に表示されます。
ちなみに、いつ終わるかわかんねえとかでリダイレクトでファイルに保存しておきたいときは、 $time (sqlplus ... ) > log.txt 2>&1 のようにtimeで計測するコマンドを()でくくってごにょごにょすればよいです。