sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo registro el tiempo de ejecución de las sentencias sql que se almacenan en archivos?

Para encontrar el tiempo de ejecución , debe inicializar un objeto de fecha al comienzo del programa y luego compararlo con otro objeto de fecha al final del programa. Esto le dará un valor entero de cuánto tiempo tardó en ejecutarse. Luego use este int donde lo necesite (por ejemplo, imprímalo en la consola, en un archivo, etc.)

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

Si no necesita hacer nada en el programa Java relacionado con los resultados de su consulta, puede mantener esto bastante simple usando runtime.exec() para que mysql ejecute las consultas. El único inconveniente importante aquí es que no puede imprimir el número resultante de filas afectadas:

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

Si realmente necesita hacer algo con los resultados, entonces runtime.exec() no te bastará. Sigue leyendo...

Para leer la fuente SQL , simplemente léalo como un archivo de texto. Será más fácil si tiene cada línea del SQL como una consulta SQL separada, ya que de lo contrario tendrá que analizar y ajustar. Aquí hay un ejemplo de leer un archivo una línea a la vez.

Para ejecutar SQL , utilice JDBC. Aquí hay un tutorial en eso. Los elementos del 1 al 5 detallarán todo lo que debe necesitar para ejecutar el sql y usar los resultados (desde establecer su conexión sql hasta ejecutar la consulta y procesar el objeto resultSet que regresa). Si alguno de estos pasos le causa problemas, su mejor opción es hacer una pregunta separada adaptada al problema específico que está teniendo en el proceso.