문제:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!