Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

por que um proc SQLCLR seria executado mais lentamente do que o mesmo lado do cliente de código


O tipo de código que você está escrevendo é altamente suscetível à injeção de SQL. Em vez de processar o leitor como você é, basta usar a propriedade RecordsAffected para encontrar o número de linhas no leitor.

EDITAR:

Depois de fazer algumas pesquisas, a diferença que você está vendo é uma diferença de design entre a conexão de contexto e uma conexão regular. Peter Debetta blogou sobre isso e escreve:

"A conexão de contexto é escrita de tal forma que busca apenas uma linha de cada vez, então, para cada uma das 20 milhões de linhas ímpares, o código estava solicitando cada linha individualmente. Usando uma conexão sem contexto, no entanto, ele solicita 8K de linhas de cada vez."

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