根据达梦数据库执行日志,shell命令找出执行时间长的sql日志

虽然达梦有专用的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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值