2016-12-23 8 views
-1

mysqlログに7秒以上7秒以上あるsloqクエリが必要です。 mysqlログファイルのサイズが500Mbを超えています 私のスクリプトはまずmysqlログからdatewise slow queryを選択し、それから7秒を超えるクエリを選択しています。ログの出力は以下のとおりです。mysqlログから7秒以上の遅いクエリ

# 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; STR_TO_DATE( '2015-12-23'、 '%Y-%m-%d')とSTR_TO_DATE( '2016-12-23'、 '%Y-%m-%d')の間にSELECT PRR.pr_register_request_dateが存在する(アイテムitem_master_idから項目を選択します。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 -n '/Query_time: [7-9]/p' file 
+0

非常に奇妙なことが起こっています。私はそれから大きなファイルを持っています私はここでfilew 500行を持っているファイルを持っている場合私はテール-500ファイル>ファイル1とテール-2000ファイル> file2あなたのクエリが動作しているようにtailingですが、私はfile2と3、 4,5秒のクエリ時間も出力に表示されます!これを理解するには非常に奇妙で奇妙です。 –

+0

@nirajvara、Plsはあなたの質問を入力ファイルがどのように正確に見えるかで更新/編集します。 – sat

+0

私は自分の質問を添付ファイルなしオプションで更新しています。そうでない場合はファイルも添付しますが、通常のmysqlログのみを添付します。 –

関連する問題