Arreter les requêtes ayant un temps d'exécution trop long

Arreter les requêtes ayant un temps d'exécution trop long - SQL/NoSQL - Programmation

Marsh Posté le 24-02-2010 à 11:37:39    

Bonjour,
Pour un souci de gestion d'ordonnanceur, je suis amené à attribuer un temps max d'exécution à différentes requêtes.
Mes requêtes son lancées via un fichier .bat.
 
Fichier .bat

Code :
  1. echo execution de la requête quantitative
  2. echo %Date% - %time% :   execution de la requête >> fichier.log
  3. sqlplus -S %USER%/%PSW%@%TNS% @mReq.sql > %my_Path%\Res.txt
  4. IF ERRORLEVEL 1 goto FIN
  5. sqlplus -S %USER%/%PSW%@%TNS% @mReq2.sql > %my_Path%\Res2.txt
  6. IF ERRORLEVEL 1 goto FIN
  7. ...
  8. sqlplus -S %USER%/%PSW%@%TNS% @mReq3.sql > %my_Path%\Res3.txt
  9. IF ERRORLEVEL 1 goto FIN
  10. exit %ErrorLevel%
  11. :FIN
  12. echo %Date% - %time% : Error Level : %ErrorLevel% >> fichier.log
  13. exit %ErrorLevel%
  14. goto :EOF


Tous les fichiers .sql ressemblent à ceci :

Code :
  1. SET LINES 400
  2. SET head off
  3. SET feedback off
  4. SET NEWPAGE none;
  5. SET echo off;
  6. SET feed off;
  7. Whenever sqlerror Exit Failure
  8. WHENEVER SQLERROR EXIT SQL.SQLCODE;
  9. SELECT champ1, champ2, ... rom maTable;
  10. exit;


e souhaiterais sortir du fichier si une des requêtes dure plus d'un certains temps défini.
 
Des idées ?
 
 
Merci :)


Message édité par shaftbis le 24-02-2010 à 11:39:13
Reply

Marsh Posté le 24-02-2010 à 11:37:39   

Reply

Marsh Posté le 26-02-2010 à 18:56:21    

ping localhost -n XX
(XX en seconde, le temps que tu laisses à ton SQL pour tourner)
 
taskkill /f /fi "IMAGENAME eq sqlplus.exe"
(là attention ça tue tous les processus dont le nom est "sqlplus.exe" )
 
tu peux filter aussi sur le temps d'execution par exemple :
taskkill /f /fi "IMAGENAME eq sqlplus.exe" /fi "CPUTIME gt 00:00:30"
(ici le temps est en hh:mm:ss)


---------------
Don't fuck me, I'm anonymous.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed