현재 ASP.NET/VB로 작성된 웹 응용 프로그램의 검색 기능을 분석 중입니다. 홈 페이지의 검색 기능은 웹 서비스의 결과를 요청하며 웹 서비스는 SQL 쿼리를 실행하고 결과를 다시 보냅니다.ASP.NET에서 SSMS보다 10 배 빠른 쿼리
성능을 분석하기 위해 응용 프로그램을 로컬에서 디버깅하고 SET STATISTICS TIME ON으로 실행하기 위해 쿼리를 SSMS에 복사했습니다.
응용 프로그램을 실행하고 브라우저의 개발자 도구에서 내 서비스 요청에 대한 응답 시간을 확인하면 약 300 밀리 초가되는 경향이 있습니다. SSMS에 정확히 같은 검색어를 복사 할 때 모든 매개 변수를 수동으로 설정하십시오 (예 : "DECLARE @SearchTerm VARCHAR = '% foobar %'"). 쿼리는 1500ms에서 2000ms 사이의 어느 곳에서나 실행됩니다.
저는 응용 프로그램에서 더 느리게 실행되는 쿼리가 무수히 많이 언급되었지만 그 반대의 이유는 무엇인지 알 수 없습니다.
누구나 과거에 비슷한 경험을했거나이 동작에 대한 가능한 설명을 찾았습니까?
응용 프로그램에서 선택을 보내기 전에 어떤 명령이 데이터베이스로 보내지 는가를 프로파일 러에서 볼 수 있습니까? – GuidoG
어쩌면 저장소 proc를 실행하거나 직접 쿼리를 실행하는지에 따라 달라질 수 있습니다. 저장 프로시 저는 컴파일되고 다른 통계를 사용할 수 있습니다. –
잘 모르겠지만 변수가 아니라 스니핑 매개 변수의 문제가 될 수 있습니다. '% foobar %'를 검색 쿼리에 넣고 동일한 시간이 걸리는지 확인할 수 있습니까? –