今天寫了一個統計執行sql次數的指令碼

space6212發表於2019-07-20

前幾天,為了超出一個問題的原因,我建議他開啟了sql_trace,執行了一段時間,產生了幾萬個trace檔案。如何從這幾萬個trace中找出需要的資訊成了一個大問題。這裡,我寫了一個shell指令碼,希望可以幫他解決問題。


[root@test]# ls
a.txt b.txt c.txt d.txt e.txt
[root@test]# ls|xargs grep -iE 'insert |update |select |delete ' |tr "[A-Z]" "[a-z]"|sed 's/^.*select /select /g'|sed 's/^.*update /update /g'|sed 's/^.*delete /delete /g'|sed 's/^.*insert /insert /g'|sort |uniq -c |sort -gr
2 select * from t3;
2 select * from t1;
2 delete from a
1 update k where
1 update a from t;
1 select * from t2;
1 select * from t;
1 select * from aa;
1 delete b;

這個指令碼得出列出的檔案中所有執行過的sql及執行次數。

對這個指令碼簡單修改可以用來提取其他有用的資訊,例如可以從tomcat的log中提取sql等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章