Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso registrare il tempo di esecuzione dell'esecuzione di istruzioni sql archiviate nei file?

Per trovare il tempo di esecuzione , è necessario inizializzare un oggetto data all'inizio del programma, quindi confrontarlo con un altro oggetto data alla fine del programma. Questo ti darà un valore intero di quanto tempo ci è voluto per l'esecuzione. Quindi usa questo int ovunque ti serva (ad esempio stampalo sulla console, su un file, ecc.)

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

Se non hai bisogno di fare nulla nel programma Java relativo ai risultati della tua query, puoi mantenere questo dannatamente semplice usando runtime.exec() per fare in modo che mysql esegua le query. L'unico grande svantaggio qui è che non puoi stampare il numero risultante di righe interessate:

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

Se hai effettivamente bisogno di fare qualcosa con i risultati, allora runtime.exec() non ti basterà. Continua a leggere...

Leggere il sorgente SQL , leggilo come file di testo. Sarà più semplice se si dispone di ogni riga dell'SQL come una query SQL separata, poiché altrimenti sarà necessario eseguire alcune analisi e modifiche. Ecco un esempio di leggere un file una riga alla volta.

Per eseguire l'SQL , usa JDBC. Ecco un tutorial su di esso. Gli elementi da 1 a 5 descrivono in dettaglio tutto ciò che è necessario per eseguire sql e utilizzare i risultati (dalla creazione della connessione sql all'esecuzione della query all'elaborazione dell'oggetto resultSet che ritorna). Se uno di questi passaggi ti causa problemi, la soluzione migliore è porre una domanda separata adattata al problema specifico che stai riscontrando nel processo.