Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22757|Répondre: 0

[Source] Cela résout le problème que les procédures stockées sont exécutées rapidement, mais que les appels de programme sont lents

[Copié le lien]
Publié sur 21/05/2018 13:55:48 | | |
Ces deux derniers jours, j’ai rencontré un problème assez frustrant : une procédure stockée d’environ 120 lignes est exécutée dans l’analyseur de requêtes de SQL Server 2012,
La vitesse est très idéale, et environ 500 enregistrements de données peuvent être filtrés et capturés en moins d’une seconde.
Cependant, lorsqu’on appelle le code du programme C#, le délai d’expiration de la connexion est sollicité. Réglez le CommandTimeout à 300, et il faudra environ 3 minutes pour s’afficher.
J’ai vérifié le code plusieurs fois et je n’ai trouvé aucune erreur. Le problème demeure.

Analyse des causes :
1. Parce que la vitesse d’exécution dans l’analyseur de requêtes est rapide et que la quantité de données n’est pas importante.
2. Seul l’appel au programme est lent.
3. Définissez le paramètre CommandTimeout, et le résultat peut être affiché, mais cela prendra beaucoup de temps.

En résumé, il est préliminairement conclu que le problème réside dans le code C#. Mais il n’y avait aucun gain après l’inspection.

Consultez ces informations sur Baidu.
J’ai finalement trouvé un post d’information similaire sur le forum CSDN. L’un des internautes a répondu : « Il est possible que le plan de mise en œuvre soit expiré ».
Ça m’a vraiment réveillé dans mon rêve.

Exécutez immédiatement sur l’analyseur de requêtes :

En testant à nouveau le programme, cette fois il a enfin fonctionné. La vitesse est très satisfaisante.

Analyse des causes :
Puisque les procédures stockées sont précompilées, un plan d’exécution est généré lors de la première exécution, et ce plan d’exécution est utilisé lors des exécutions ultérieures (sauf si la procédure stockée est spécifiée pour être recompilée), plutôt que de générer un plan d’exécution à chaque exécution.
Lorsque la structure de l’objet impliquée dans la procédure stockée est ajustée, ou que les données associées changent significativement, ce qui peut rendre le plan original inadapté au statu quo actuel (expiration du plan d’exécution), la procédure stockée doit être recompilée.

Enfin, joignez le code de la procédure stockée :







Précédent:Partagez une seule source de code de page promotionnelle APP, adaptable, très belle et généreuse !
Prochain:Cadre Open Source C# (Réimpression)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com