Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1278 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de délai d'attente pour procédure stockée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de délai d'attente pour procédure stockée

n°1157061
caribou311
Posté le 22-07-2005 à 12:25:50  profilanswer
 

Mon prob: Je fais des requetes depuis des pages ASP plutot lourdes (15 à 20 minutes) alors j'essaie de passer par des procédures stockeés et des views.
 
Seulement à présent que je passe par une procédure stockée qui fouille dans un view, ca plante à cause des délais. Je ne sais pas gérer les délais d'attente. J'ai essayé ca depuis ma page ASP qui fonctionnait avant.
 
               Server.ScriptTimeOut = 50000000
               EXEC sp_export_pro '6'
 
Je ne sais pas trop ce que fait cette procédure "Server.ScriptTimeOut" c'est un package utilisé par celui qui gérai le site avant moi et qui selon moi devrait bidouiller avec la fonction CommandTimeout. Maintenant que je la mette ou pas ma page plante systématiquement au bout d'une trentaine de seconde  :pfff:    
 
Bon voici mes questions:  
-passer par ces structures va-t-il réduire mes temps de requête au final?
-Qu'elles commandes mettre dans ma procédure stockée et/ou mon view pour régler ce  :kaola: de temps d'accès? (le code please car je commence tout juste à toucher le SQL...)
 
Merci par avance

mood
Publicité
Posté le 22-07-2005 à 12:25:50  profilanswer
 

n°1157070
friday_13
sans avatar fixe
Posté le 22-07-2005 à 12:29:21  profilanswer
 

a mmon avis , il faut optimiser tes tables avec des indexes, optimiser tes requetes, pour accelerer un peu tout ça.
la procedure stockee sera plus rapide en theorie.  
Commandtimeout = 0 : temps iliimite...

n°1157229
caribou311
Posté le 22-07-2005 à 14:35:48  profilanswer
 

Commandtimeout = 0  
Ca je l'avais bien en tête, mais je ne sais pas où le mettre dans ma fonction, la compilation n'apprécie pas du tout que j'écrive ce genre de chose....
voici le view si quelqu'un sait où insérer la commande.
 
 
CREATE VIEW dbo.vwexportpro
AS
SELECT DISTINCT
                     TOP 100 PERCENT  A.ANC_NOM AS Expr1, A.ANC_PRENOM AS Expr2, A.ANC_ECOLE AS Expr3, A.ANC_ID_ECOLE AS Expr4, D.*, C.PAYS AS Expr5,  
                      F.PROMO AS Expr6
FROM         dbo.ANC_ID A INNER JOIN
                      dbo.ANC_PRO_2 D ON A.ANC_ID = D.ANC_ID AND A.ANC_ECOLE = D.ANC_ECOLE INNER JOIN
                      dbo.ANC_PROMO F ON A.ANC_PROMO = F.ID_PROMO AND A.ANC_ECOLE = F.ID_ECOLE INNER JOIN
                      dbo.TB_PAYS C ON D.ANC_PRO_PAYS = C.ID_PAYS CROSS JOIN
                      dbo.TB_DEP G CROSS JOIN
                      dbo.ANC_ETAT_EMPLOI H
ORDER BY A.ANC_NOM

n°1157463
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-07-2005 à 17:21:19  profilanswer
 

là où t'as ton :

Code :
  1. dim cmd
  2. set cmd = Server.CreateObject("ADODB.Command" )


Ben là, tu rajoutes "cmd.CommandTimeout = 0"
 
Sinon, le Server.ScriptTimeout empêche IIS d'aborder le chargement de la page ASP avant le délais spécifié en secondes.
Par défaut c'est 90 secondes.

n°1157485
caribou311
Posté le 22-07-2005 à 17:45:31  profilanswer
 

Ok mais ca reste des choses à faire du coté de mon code ASP...
Ma procédure faisait déjà ça et fonctionne bien tant que je n'utilise pas de procédure stockée. Elle n'a visiblement plus aucun effet quand j'utilise des procédures stockées (je ne me l'explique pas, donc il est très possible que je sois en train de dire n'importe quoi...).
 
Bref à part si quelqu'un peut me dire comment paramétrer ca directement depuis ma requête de view ou bien de procédure stockée je vais devoir changer le réglage par défaut du serveur pour toutes les pages. Seulement j'aimerai avoir une autre solution sous la main pour faire un truc plus propre car on héberge pas mal d'activités dans le coin (puis je me vois mal annoncer au boss que j'ai du effectuer une telle opération pour un truc qui me semble très basique).  
Bref je m'y pencherai après un week end de repos neuronal ;) Merci pour votre aide

n°1157491
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-07-2005 à 18:00:21  profilanswer
 

c'est pas au niveau de la requête qu'on change ça.
c'est au niveau de l'ASP, qui dit au serveur IIS d'attendre, et au drivers OLEDB de rester en ligne.
 
côté sql server, y'a rien à paramètrer, par défaut tu peux lancer une requête qui met 10 ans à s'executer, il va poireauter tout le temps nécessaire

n°1157492
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-07-2005 à 18:01:11  profilanswer
 

tu peux ajouter aussi cnx.connectiontimeout pour dire non seulement à la commande de ne pas aborder, mais aussi à la connection de ne pas se fermer.

n°1157493
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-07-2005 à 18:01:48  profilanswer
 

déjà, poste le message exect, il dit en toutes lettres généralement ce qui cloche, suffit de savoir le décrypter ;)
 
 
sinon, dans ton code ASP, t'as en toutes lettres un truc avec un "EXEC" ? c'est quoi ce truc :o
 
passe par un objet COMMAND avec des paramètres et proprement.
 
tu devrais trouver des exemple en tappant ça dans google :
 
asp server.createobject("adodb.command" ) adProcCmd


Message édité par Arjuna le 22-07-2005 à 18:03:42

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de délai d'attente pour procédure stockée

 

Sujets relatifs
[.NET c#] exeption et probleme de castproblème avec barre de chargement
Probléme avec method="post" et "get" (Résolu )Problème avec le pied de page
probleme de sessionproblème de modification d'une variable globale xsl
petit probleme script de menu deroulant[php-Xoops]Probleme de fichiers phpxx.tmp qui saturent le dossier temp
Probleme de taille de l'animation lors de l'integration [RESOLU]probleme clé etrangere
Plus de sujets relatifs à : problème de délai d'attente pour procédure stockée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR