J'ai une procédure stockée de recherche qui est mon goulot d'étranglement des performances.La procédure stockée appelée à partir de C# s'exécute 6 fois plus longtemps qu'à partir de SQL Management studio
Afin de contrôler ce qui s'est passé, j'ai ajouté la journalisation pour tous les paramètres et le temps d'exécution dans SP.
Je remarquai que quand je l'appelle SP de la gestion du serveur Microsoft SQL temps d'exécution Studio est 1,3-1,6 secondes, mais quand je l'appelle de C#, il prend 6-8 secods (!!!)
Parameters | Time (ms)
"tb *"TreeType:259Parents:212fL:13;14fV:0;lcid:2057min:0max:10sort:-1 | 6406
"tb *"TreeType:259Parents:212fL:13;14fV:0;lcid:2057min:0max:10sort:-1 | 1346
SP est appelé avec LINQ. Les paramètres de connexion sont les mêmes. SP utilise la recherche plein texte
Ce qui pourrait causer cela?
Je ne suis pas sûr en ce qui concerne le système de mise en cache Microsoft SQL. Essayez d'exécuter la procédure stockée à partir du studio de gestion, puis de C#. Les résultats seront-ils différents du courant? – Anton
@Anton: Je peux obtenir les mêmes résultats ne dépendant pas de l'ordre des appels. En fait, cette liste est triée par id desc, donc la dernière requête est la dernière. – st78
Avez-vous essayé d'utiliser 'SqlCommand' au lieu de LINQ? Vous pouvez utiliser la méthode 'Prepare' en plus. Utilisez-vous SQL Server local? Quelles données renvoie la procédure stockée? – Oleg