ホームページ >データベース >mysql チュートリアル >SSMS では SQL クエリが速いのに、C# アプリケーションでは遅いのはなぜですか?
問題:
SQL Server でデータを迅速に返すクエリManagement Studio (SSMS) を C# から実行すると、かなりの時間がかかりますapplication.
コード:
C# コードは、SqlDataAdapter とその Fill メソッドを使用してクエリを実行します。
using (var conn = new SqlConnection(...)) using (var ada = new SqlDataAdapter(...)) { ada.Fill(Logs); }
SSMS クエリは次のとおりです。で実行されたものと同じですapplication.
原因:
実行時間の不一致は、アプリケーションと SSMS でのパラメーターの処理方法の違いによって発生します。アプリケーションでは、AddWithValue メソッドを使用して NVARCHAR 型のパラメーターを追加しますが、SSMS では、パラメーターは VARCHAR として宣言されます。
解決策:
解決するにはこの問題は、次のいずれかです:
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
where client_id = cast(@clientID as varchar(200))
潜在的なキャッシュ汚染にも対処するため、最初の解決策が推奨されます。
追加考慮事項:
以上がSSMS では SQL クエリが速いのに、C# アプリケーションでは遅いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。