2016-12-23 3 views
-1

Ich möchte SLOQ Abfrage, die 7 oder größer als 7 Sekunden in MySQL Protokoll haben. mysql Log-Datei haben eine Größe größer als 500 Mb so Mein Skript wählen Sie zuerst die datewise langsame Abfrage von MySQL-Protokoll und aus diesem ich bin Abfrage auswählen, die größer als 7 Sekunden ist. Protokollausgabe ist unter.langsame Abfrage größer oder gleich 7 Sekunden von MySQL-Protokoll

# 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 

Verwendung Dbname; SET Zeitstempel = 1482477042; SELECT PRR.pr_register_request_date ZWISCHEN STR_TO_DATE ('2015-12-23', '% Y-% m-% d') UND STR_TO_DATE ('2016-12-23', '% Y-% m-% d') EXISTS (SELECT item_master_id FROM Artikel WHERE IM.item_master_item_code = PRR.pr_register_material_code);

Antwort

0

Warum AWK nicht verwenden? $ 3 = dritte Platz in Ihrer Linie (Zeit)

Beispieldaten (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'); 

und einfach:

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

oder ersetzen 7 mit dem, was immer Sie wollen ... und speichert sie in der Datei

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

Bei der Abfrage auch andere Parameter wie dort ... # Zeit: 161223 00.50.46 # Benutzer @ Host: root [root] @ [10.160.15.69] bei dieser awk funktioniert nicht richtig –

0

Sie könnten grep verwenden:

grep 'Query_time: [7-9]' file 

Mit sed:

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

sehr seltsame Dinge passiert mit mir. Ich habe große Datei von mir Ich bin Tailing wie Schwanz -500 Datei> Datei1 und Tail -2000 Datei> Datei2 Ihre Abfrage ist Arbeit, wenn ich die Datei haben, die die 500 Zeilen hier Datei haben, aber wenn ich 2000 Zeilen mit Datei2 habe dann 3, 4,5 Sekunden Abfragezeit zeigt auch in der Ausgabe !!! sehr sehr seltsam und seltsam für mich, dies zu verstehen. –

+0

@nirajvara, Pls aktualisieren/bearbeiten Sie Ihre Frage mit wie Ihre Eingabedatei genau aussieht. – sat

+0

Ich habe Update meine Frage keine Anlage Option sonst Datei anhängen, aber es ist nur eine normale MySQL-Protokoll. –

Verwandte Themen