2010-05-11 2 views
1

데이터를 표시하기 위해 웹 사이트에서 호출하는 저장 프로 시저가 있습니다. 오늘 웹 페이지가 타임 아웃되기 시작하여 프로파일 러가 나타나서 너무 오래 걸리는 쿼리를 보았습니다. 그런 다음 동일한 사용자 로그인으로 관리 스튜디오에서 동일한 쿼리를 실행했으며 반환하는 데 1 초도 채 걸리지 않았습니다.웹 사이트에서 호출 할 때 저장 프로 시저가 30 초 이상 실행되지만 데이터 호출시 1 초 미만

이 문제의 원인이 될만한 것이 있습니까? ASP가 저장된 proc을 호출 할 때 30 초가 걸리는 이유를 생각할 수는 없지만 호출하면 괜찮습니다.

  1. 네트워크 문제
  2. 매개 변수 스니핑
+0

많은 동시성이 진행되고 있습니까? 매개 변수는 무엇입니까? –

+0

SMSS는 로컬 인스턴스 또는 동일한 원격 DB에 연결되어 있습니까? 쿼리가 반환하는 데이터의 양이 문제인지 여부를 궁금해하는 것입니다 (예 : 공유 메모리 유형의 연결로 로컬에서 볼 수 없음). – Paolo

+0

코드의 모양은 어떻습니까? – Paddy

답변

0

그것은 매개 변수 스니핑 것으로 보입니다 ... 나는 매개 변수를 로컬 변수에 할당하여 스니핑을 중지했습니다. . 이런 식으로 남아 있는지, 아니면 다시 저하되는지 보는 것은 흥미로울 것입니다.

옵션 RECOMPILE을 사용하여 실행하는 것으로 가정했을 때 문제의 쿼리에 대한 매개 변수 스니핑 문제가 일시적으로 '고정'되었지만 그렇지 않습니다.

아. 답변 해 주셔서 감사합니다. 무슨 일이 일어날 지 알게 될 것입니다.

+0

이것이 답이 될 경우 확실한 경우 수락하십시오. 네가 여기 새로 왔으니 환영 해! – SqlRyan

1

것 같아요, 두 가지 이유가있을 수 있습니다.

-1

죽은 자물쇠처럼 소리 :

덕분에

+0

아니야! 그러면 참여 트랜잭션 중 하나가 롤백되고 교착 상태가 발생했다는 오류 메시지가 표시됩니다. –

1

일반적으로 SET-tings 중 일부는 Management Studio 연결과 ASP 연결간에 차이가 있기 때문에 발생합니다 (예 : SET ARITHABORT). 이것은 웹 사이트 전화에서 단지 문제가 발생하기 시작한 이유를 설명하지는 않지만 관련성이 매우 높습니다.

+0

http://stackoverflow.com/questions/2736638/sql-query-slow-in-net-application-but-instantaneous-in-sql-server-management-stu/에는 관련성이있는 답변도 있습니다. – Rob

+0

속도 차이를 설명하는 설정 자체가 확실하지 않습니까? 더 일반적으로 이러한 설정 중 하나를 변경하면 새로운 실행 계획이나 다른 실행 계획이 생기므로 고정 된 설정을 변경하는 것처럼 보이지만 사실은 매개 변수 스니핑입니다. –

+0

나는 이것을 ARITHABORT와 함께 경험했다. 문제는 계산 된 열의 인덱스를 쿼리하는 것이 었습니다.이 인덱스는 ARITHABORT가 설정 될 때 더 잘 수행됩니다. – devio

0

우리는 IVR과 비슷한 문제가 있습니다. SSMS를 통해 쿼리를 실행했을 때 즉시 반환되었지만 IVR에서 액세스 한 웹 서비스를 통해 실행되었을 때 약 20 시간의 % - 정말 이상합니다.

SQL 프로필러를 실행하여 쿼리가 제출 된 것을 확인한 다음 인덱스 조정 마법사의 권장 사항에 따라 몇 가지 추가 인덱스를 추가했습니다. 인덱스 튜닝 마법사의 권장 사항에 따라 매 초마다 IVR 쿼리 속도가 빨라졌습니다. 나는이 문제가 매개 변수와 관련이 있다고 생각한다. 두 곳의 실행 계획을 비교하지는 않았지만 그 계획이 상당히 다른 것으로 의심된다. SQL 프로파일 러는 엔진에 실제로 제출 된 쿼리와 데이터를 가져 오는 데 사용하는 실행 계획을 볼 수 있기 때문에이를 정리하는 데 도움이됩니다.

관련 문제