Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie zeichne ich die Ausführungszeit von ausgeführten SQL-Anweisungen auf, die in Dateien gespeichert sind?

Um die Ausführungszeit zu finden , sollten Sie zu Beginn des Programms ein Datumsobjekt initialisieren und dieses dann am Ende des Programms mit einem anderen Datumsobjekt vergleichen. Dadurch erhalten Sie einen ganzzahligen Wert, der angibt, wie lange die Ausführung gedauert hat. Verwenden Sie dann dieses int, wo immer Sie es brauchen (z. B. auf der Konsole, in einer Datei usw. ausgeben)

Date startDate = new Date();
//Run the rest of the program
Date endDate = new Date();
int msElapsedTime = startDate.getTime() - endDate.getTime();

Wenn Sie nichts im Java-Programm in Bezug auf die Ergebnisse Ihrer Abfrage tun müssen, können Sie dies mit runtime.exec() verdammt einfach halten um mysql die Abfragen ausführen zu lassen. Der einzige große Nachteil hier ist, dass Sie die resultierende Anzahl der betroffenen Zeilen nicht ausdrucken können:

Date startDate = new Date();
runtime.exec("mysql db_name < /home/liova/download/tpch/queries/Q1.sql");
Date endDate = new Date();
int msElapsedTime = startDate.getTime() - endDate.getTime();

Wenn Sie tatsächlich etwas mit den Ergebnissen machen müssen, dann runtime.exec() wird dir nicht genügen. Weiterlesen...

So lesen Sie die SQL-Quelle , lesen Sie es einfach als Textdatei. Am einfachsten ist es, wenn Sie jede Zeile der SQL als separate SQL-Abfrage haben, da Sie sonst einige Analysen und Anpassungen vornehmen müssen. Hier ist ein Beispiel eine Datei zeilenweise zu lesen.

So führen Sie die SQL aus , verwenden Sie JDBC. Hier ist ein Tutorial darauf. Die Punkte 1 bis 5 beschreiben alles, was Sie für die Ausführung von SQL und die Verwendung der Ergebnisse benötigen (vom Aufbau Ihrer SQL-Verbindung über die Ausführung der Abfrage bis zur Verarbeitung des zurückgegebenen resultSet-Objekts). Wenn Ihnen einer dieser Schritte Probleme bereitet, stellen Sie am besten eine separate Frage, die auf das spezifische Problem zugeschnitten ist, das Sie dabei haben.