shell之獲取資料庫SQL執行時間(精確到毫秒)?

Tags: 時間, 資料庫,

shell之獲取時間(精確到毫秒)

需求:通過shell獲取資料庫當前時間,並計算從開啟資料庫連線--查詢--關閉資料庫連線所耗費的時間(精確到毫秒)

步驟:

1、獲取時間(獲取時間)

注意:

1:連線資料庫的最後關閉時必須頂格寫否則報錯

2:shell無法直接獲取精確到毫秒的時間,需要通過計算獲取

方法/步驟

獲取時間(獲取時間)

[[email protected] zxx_shell]$ cat 3-time.sh

#!/bin/bash

var= #宣告全域性變數

function getTiming()

{

exec_start=$1

exec_end=$2

exec_start_s=`echo $exec_start cut -d '.' -f 1` #獲取開始時間的秒

exec_start_ns=`echo $exec_start cut -d '.' -f 2` #獲取開始時間的納秒

exec_end_s=`echo $exec_end cut -d '.' -f 1` #獲取結束時間的秒

exec_end_ns=`echo $exec_end cut -d '.' -f 2` #獲取結束時間的納秒

exec_time_ms=$[$[$[ 10#$exec_end_s - 10#$exec_start_s ] * 1000] + $[$[10#$exec_end_ns / 1000000] - $[10#$exec_start_ns / 1000000] ] ]

nowdate=`date +%Y%m%d-%T`

echo "--------$nowdate-------->":$exec_time_ms

}

date= #宣告全域性變數

function importTargetData()

{

exec_start=`date +%s.%N` #獲取時間格式:秒.納秒

sql="select sysdate from dual;"

date=`sqlplus -s zxx/[email protected] < #接收資料庫查詢返回值

set heading off

set termout off

set feedback off

$sql

quit;

EOF` #一定要頂格寫

exec_end=`date +%s.%N`

var=$(getTiming $exec_start $exec_end)

}

importTargetData

echo $var

echo $date

[[email protected] zxx_shell]$ ./3-time.sh

--------20150805-15:26:19-------->:75

05-AUG-15

shell之獲取資料庫SQL執行時間(精確到毫秒)

相關問題答案