sql >> Database >  >> RDS >> Mysql

Hoe registreer ik de uitvoeringstijd van het uitvoeren van SQL-instructies die in bestanden zijn opgeslagen?

De uitvoeringstijd vinden , moet u een datumobject aan het begin van het programma initialiseren en dat vervolgens vergelijken met een ander datumobject aan het einde van het programma. Dit geeft je een geheel getal van hoe lang het duurde om uit te voeren. Gebruik deze int dan waar je hem nodig hebt (bijv. print hem naar de console, naar een bestand, enz.)

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

Als u niets hoeft te doen in het Java-programma met betrekking tot de resultaten van uw zoekopdracht, kunt u dit vrij eenvoudig houden met runtime.exec() om mysql de query's te laten uitvoeren. Het enige grote nadeel hier is dat u het resulterende aantal betrokken rijen niet kunt afdrukken:

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

Als je echt iets met de resultaten moet doen, dan runtime.exec() zal voor jou niet voldoende zijn. Lees verder...

Om de SQL-bron te lezen , lees het gewoon als een tekstbestand. Het is het gemakkelijkst als je elke regel van de SQL als een aparte SQL-query hebt, omdat je anders wat parsering en aanpassingen moet doen. Hier is een voorbeeld om een ​​bestand regel voor regel te lezen.

Om de SQL uit te voeren , gebruik JDBC. Hier is een zelfstudie ben ermee bezig. Items 1 tot en met 5 beschrijven alles wat u nodig hebt voor het uitvoeren van de sql en het gebruik van de resultaten (van het tot stand brengen van uw sql-verbinding tot het uitvoeren van de query tot het verwerken van het resultaatset-object dat terugkomt). Als een van deze stappen u problemen bezorgt, kunt u het beste een aparte vraag stellen die is afgestemd op het specifieke probleem dat u in het proces ondervindt.



  1. SQL-injectie zonder parameters vermijden

  2. MySQL OP DUPLICATE KEY UPDATE voor meerdere rijen invoegen in enkele query

  3. Kan root-wachtwoord niet opnieuw instellen met --skip-grant-tables op ubuntu 16

  4. Sqoop-export naar MySQL-exporttaak mislukt tool.ExportTool maar kreeg records