奇妙な状況に続いて、昨日SqlClientを使用して並べ替えられた結果セットを取得したときにc#で取得しました。
たとえば、次のSQLクエリ:
SELECT Num, Name FROM Customer WHERE Num LIKE '%V%' OR Name LIKE '%V%' ORDER BY Num ASC
この特別な場合に注文する結果セットの長さは約100行です。
問題は次のとおりです。SQLServer自体でクエリを実行すると、非常に高速になります。「クエリの実行」をクリックした瞬間に結果が表示されます。しかし、SqlClientを使用してC#でクエリを実行すると、非常に遅くなります(約5〜10秒)。プログラムのすべての部分をベンチマークしたところ、SQLサーバーへの接続は約10ミリ秒で行われるため、2台のマシン間のリンクに問題はないことがわかりました。
クエリからORDERBYNum ASCを削除すると、SqlClientを使用したC#のクエリが、SQLサーバーで直接クエリを実行するのとほぼ同じ速度で結果を返すことがわかるまで、ほとんどすべてを試しました。
だから私の質問は:SQLServer自体と比較して使用時間を数千万倍するためにC#のSqlClientがORDERBYで何をしているのですか?=)