SQL Server Management Studio 내에서 실행될 때 (정확한 인덱스를 추가하여 최적화 한 후) 실행하는 데 약 3 초가 걸리는 쿼리 (은 저장 프로 시저로 저장 됨)가 있습니다.쿼리는 SQL Server에서 4 초 만에 직접 실행되지만 ASP.NET에서는 30 초 이상 걸립니까?
이 C#에서 래퍼를 작성하고 URI를 사용하여이 쿼리를 실행할 수있는 기능을 제공했습니다. 그러나이 작업을 수행하는 데 30 초 이상 걸리고이 때문에이 쿼리를 루프의 일부로 실행하면 너무 많은 보류중인 요청으로 인해 브라우저가 멈 춥니 다.
try
{
string ConString = Constants.connString;
using (con = new SqlConnection(ConString))
{
cmd = new SqlCommand(sql, con);
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
...
}
}
}
내 연결 문자열은 이것이다 : 나는이 같은 래퍼를 썼다
Data Source={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=true
나는 (아래 내가 그것을 SSMS 내부에 여러 번 실행 한하고 잘 작동하기 때문에 쿼리 자체가 잘 알고 평균 5 초). 그리고 무엇을 제공해야할지 모르겠다는 것을 제외하고는 더 많은 디버그 정보를 제공하게되어 기쁩니다.
이러한 문제를 해결하려면 어디서부터 시작해야합니까?
는 편집 :
나는 SQL 프로파일 러를 실행하고 몇 가지 통계를 수집. 이것이 내가 관찰하는 것입니다. 매우 정확한 쿼리가 실행되는 것이 이상합니다. 이 시점에서 내가 할 수있는 일이 있다면 알려주십시오.
어떤 줄과 어떤 줄 사이에 30 초가 걸리나요? –
@MikeChristensen :'cmd.ExecuteReader()'에서 멈 춥니 다. – Legend
SQL 명령 문자열이 1600 라인이거나 1600 개의 행을 반환한다고 말하고 있습니까? – RBarryYoung