虽然达梦有专用的sql统计工具,但是并不直观而且未持久化
通过达梦数据库自有的执行sql日志 包含了执行sqlid 和执行sql 执行时间
使用shell脚本搜索执行时间长的sql
for file in `ls /dmdba/dmdbms/dmsqllog/*`
do
grep "EXECTIME" $file | awk -F'EXECTIME:' '{print $2}' | awk -F'(' '{print $1}' | sed 's/ //g' | bc > temp.txt
sort -u temp.txt > temp1.txt
while read -r line
do
##搜索执行时间大于一千毫秒的
if [ `echo $line | bc` -gt "1000" ]
then
echo "file====="$file | tee -a longsql.txt
echo "$line(ms)" $file | grep "EXECTIME" | tee -a longsql.txt
else
echo "$file == $line"
fi
done < ./temp1.txt
done
rm temp.txt temp1.txt