sql >> Databasteknik >  >> RDS >> Mysql

Hur registrerar jag körningstiden för att köra sql-satser som lagras i filer?

För att hitta körningstiden , bör du initiera ett datumobjekt i början av programmet och sedan jämföra det med ett annat datumobjekt i slutet av programmet. Detta ger dig ett heltalsvärde för hur lång tid det tog att köra. Använd sedan denna int varhelst du behöver den (t.ex. skriv ut den till konsolen, till en fil, etc.)

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

Om du inte behöver göra något i Java-programmet relaterat till resultaten av din fråga, kan du hålla det här ganska enkelt med runtime.exec() att låta mysql köra frågorna. Den enda stora nackdelen här är att du inte kan skriva ut det resulterande antalet rader som påverkas:

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

Om du verkligen behöver göra något med resultaten, runtime.exec() kommer inte att räcka för dig. Läs vidare...

För att läsa SQL-källan , läs det bara som en textfil. Det blir enklast om du har varje rad i SQL som en separat SQL-fråga, eftersom du annars måste göra en del analys och justering. Här är ett exempel att läsa en fil en rad i taget.

Köra SQL , använd JDBC. Här är en självstudie på det. Punkterna 1 till 5 kommer att beskriva allt du behöver för att köra sql och använda resultaten (från att upprätta din sql-anslutning till att köra frågan till att bearbeta resultSet-objektet som kommer tillbaka). Om något av dessa steg orsakar dig problem, är din bästa insats att ställa en separat fråga som är anpassad till det specifika problem du har under processen.



  1. Ett enkelt användningsfall för index på primärnycklar

  2. Uppsättningar från ett enda bord, grupperade efter en kolumn

  3. Få sökresultat för datumintervall

  4. Laravel vältalig Ignorera hölje