Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

pourquoi un proc SQLCLR s'exécuterait-il plus lentement que le même code côté client

Le type de code que vous écrivez est très sensible à l'injection SQL. Plutôt que de traiter le lecteur comme vous le faites, vous pouvez simplement utiliser la propriété RecordsAffected pour trouver le nombre de lignes dans le lecteur.

MODIFIER :

Après avoir fait quelques recherches, la différence que vous voyez est une différence de conception entre la connexion contextuelle et une connexion régulière. Peter Debetta a blogué à ce sujet et écrit :

"La connexion contextuelle est écrite de telle sorte qu'elle ne récupère qu'une ligne à la fois, donc pour chacune des 20 millions de lignes impaires, le code demandait chaque ligne individuellement. En utilisant une connexion sans contexte, cependant, il demande une valeur de 8K de lignes à la fois."

http://sqlblog.com /blogs/peter_debetta/archive/2006/07/21/context-connection-is-slow.aspx