あなたが書いているコードのタイプは、SQL インジェクションの影響を非常に受けやすいものです。あなたのようにリーダーを処理するのではなく、RecordsAffected プロパティを使用してリーダーの行数を調べることができます。
編集:
いくつかの調査を行った後、表示されている違いは、コンテキスト接続と通常の接続の設計上の違いです。 Peter Debetta はこれについてブログで次のように書いています。
「コンテキスト接続は、一度に 1 行だけをフェッチするように記述されているため、2,000 万のいくつかの奇数行のそれぞれについて、コードは各行を個別に要求していました。ただし、非コンテキスト接続を使用すると、8K の価値が要求されます。
http://sqlblog.com /blogs/peter_debetta/archive/2006/07/21/context-connection-is-slow.aspx