


Pourquoi ma requête SQL est-elle rapide dans SSMS mais lente dans mon application C# ?
Jan 04, 2025 am 07:04 AMLe code s'exécute lentement dans l'application mais rapidement dans SSMS
Problème :
Une requête qui renvoie rapidement des données dans SQL Server Management Studio (SSMS) prend beaucoup de temps lorsqu'il est exécuté à partir d'un C# application.
Code :
Le code C# utilise un SqlDataAdapter et sa méthode Fill pour exécuter la requête.
using (var conn = new SqlConnection(...)) using (var ada = new SqlDataAdapter(...)) { ada.Fill(Logs); }
La requête SSMS est identique à celui exécuté dans le application.
Cause :
L'écart dans le temps d'exécution est dû à une différence dans la façon dont les paramètres sont gérés dans l'application et dans SSMS. Dans l'application, la méthode AddWithValue permet d'ajouter un paramètre de type NVARCHAR, tandis que dans SSMS, le paramètre est déclaré comme VARCHAR.
Solution :
Pour résoudre ce problème, soit :
- Utiliser le constructeur qui accepte un type lors de l'ajout de paramètres dans l'application code :
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
- Castez le paramètre dans le texte SQL :
where client_id = cast(@clientID as varchar(200))
La première solution est préférée car elle résout également une pollution potentielle du cache problème.
Considérations supplémentaires :
- Assurer que l'application et SSMS utilisent le même ordinateur et la même connexion.
- Les tables référencées dans la requête ont des index appropriés et fonctionnent bien dans SSMS.
- Considérez l'effet de la mise en cache des paramètres sur la requête performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
