2016-12-23 53 views
-1

我想在mysql日誌中有7或大於7秒的sloq查詢。 mysql日誌文件的大小大於500 Mb所以 我的腳本首先從mysql日誌中選擇按日期慢速查詢,然後從中選擇大於7秒的查詢。日誌輸出如下。緩慢的查詢大於或等於7秒從MySQL日誌

# Time: 161223 12:40:42 
# [email protected]: root[root] @ [10.160.15.69] 
# Query_time: 5.307732 Lock_time: 0.000061 Rows_sent: 1 Rows_examined:30334028 

use Dbname; SET timestamp = 1482477042; SELECT PRR.pr_register_request_date BETWEEN STR_TO_DATE('2015-12-23','%Y-%m-%d')AND STR_TO_DATE('2016-12-23','%Y-%m-%d')EXISTS (SELECT item_master_id FROM item WHERE IM.item_master_item_code = PRR.pr_register_material_code);

回答

0

爲什麼不使用AWK?在命令行$ 3 =第三位(時間)

樣本數據(的test.txt)

# Query_time: 9.353543 Lock_time: 0.000036 Rows_sent: 0 Rows_examined: 9091792 use Aarti_Engineering_Purchase; SET timestamp=1482477646; SELECT fieldvalue,I.InquiryID FROM FormMaster FM,FormDetail FD,Inquiry I,InquiryDetails I.InquiryID = ID.InquiryID AND AttributeValue IN ('ProjectCode'); 
# Query_time: 7.353543 Lock_time: 0.000036 Rows_sent: 0 Rows_examined: 9091792 use Aarti_Engineering_Purchase; SET timestamp=1482477646; SELECT fieldvalue,I.InquiryID FROM FormMaster FM,FormDetail FD,Inquiry I,InquiryDetails I.InquiryID = ID.InquiryID AND AttributeValue IN ('ProjectCode'); 
# Query_time: 9.353543 Lock_time: 0.000036 Rows_sent: 0 Rows_examined: 9091792 use Aarti_Engineering_Purchase; SET timestamp=1482477646; SELECT fieldvalue,I.InquiryID FROM FormMaster FM,FormDetail FD,Inquiry I,InquiryDetails I.InquiryID = ID.InquiryID AND AttributeValue IN ('ProjectCode'); 
# Query_time: 2.353543 Lock_time: 0.000036 Rows_sent: 0 Rows_examined: 9091792 use Aarti_Engineering_Purchase; SET timestamp=1482477646; SELECT fieldvalue,I.InquiryID FROM FormMaster FM,FormDetail FD,Inquiry I,InquiryDetails I.InquiryID = ID.InquiryID AND AttributeValue IN ('ProjectCode'); 
# Query_time: 28.353543 Lock_time: 0.000036 Rows_sent: 0 Rows_examined: 9091792 use Aarti_Engineering_Purchase; SET timestamp=1482477646; SELECT fieldvalue,I.InquiryID FROM FormMaster FM,FormDetail FD,Inquiry I,InquiryDetails I.InquiryID = ID.InquiryID AND AttributeValue IN ('ProjectCode'); 

和簡單:

awk '$3 < 7' ./test.txt 

或更換7你想要的任何時間......和它們存儲在文件

awk '$3 > 7.5' ./test.txt >> ./long_query.txt 
+0

在查詢其他參數也有像...#時間:161223 12點50分46秒 #用戶名@主持人:根[根] @ [10.160.15.69]在這awk無法正常工作 –

0

你可以使用grep

grep 'Query_time: [7-9]' file 

隨着sed

sed -n '/Query_time: [7-9]/p' file 
+0

非常奇怪的事情發生在我身上。我有它的大文件我尾巴像尾-500文件> file1和尾-2000文件> file2你的查詢工作,如果我有這裏有500行filew文件,但如果我有2000行與file2然後3, 4,5秒查詢時間也顯示在輸出中!非常奇怪和奇怪的是我理解這一點。 –

+0

@nirajvara,請更新/編輯您的問題與您的輸入文件是如何看起來像。 – sat

+0

我有更新我的問題沒有附件選項,否則附加文件,但它只是一個正常的MySQL日誌。 –