Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment enregistrer le temps d'exécution des instructions sql en cours d'exécution qui sont stockées dans des fichiers ?

Pour trouver le temps d'exécution , vous devez initialiser un objet date au début du programme, puis le comparer à un autre objet date à la fin du programme. Cela vous donnera une valeur entière du temps qu'il a fallu pour s'exécuter. Utilisez ensuite cet int partout où vous en avez besoin (par exemple, imprimez-le sur la console, dans un fichier, etc.)

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

Si vous n'avez rien à faire dans le programme Java concernant les résultats de votre requête, vous pouvez garder cela très simple en utilisant runtime.exec() pour que mysql exécute les requêtes. Le seul inconvénient majeur ici est que vous ne pouvez pas imprimer le nombre résultant de lignes affectées :

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 vous avez réellement besoin de faire quelque chose avec les résultats, alors runtime.exec() ne vous suffira pas. Lisez la suite...

Pour lire la source SQL , il suffit de le lire comme un fichier texte. Ce sera plus facile si vous avez chaque ligne du SQL en tant que requête SQL distincte, sinon vous devrez effectuer une analyse et un ajustement. Voici un exemple de lire un fichier une ligne à la fois.

Pour exécuter le SQL , utilisez JDBC. Voici un tutoriel dessus. Les éléments 1 à 5 détaillent tout ce dont vous avez besoin pour exécuter SQL et utiliser les résultats (de l'établissement de votre connexion SQL à l'exécution de la requête en passant par le traitement de l'objet resultSet qui revient). Si l'une de ces étapes vous cause des problèmes, votre meilleur pari est de poser une question distincte adaptée au problème spécifique que vous rencontrez au cours du processus.