SQL Server 기능 시간 초과 - 함수 내의 SELECT 문이 1 초 안에 실행됩니다.
누구든지이 bizare 동작에 대해 설명 할 수 있습니까?
매우 복잡한 select 문을 호출하는 함수가 있습니다. 3 개의 매개 변수를 허용합니다.
Select *
from Myfunction(@CompanyId, @DivisionId, @PersonId)
이 시간 초과 10 분.
함수의 내부 SQL을 가져 와서 동일한 변수를 선언하고 동일한 값으로 설정하고 실행하면 8 초가 걸립니다.
결과를 반환하지 않는 @CompanyId
이있는 함수를 실행하면 예상대로 행이 반환되지 않고 즉시 반환되므로 사용 권한 문제가 아닙니다.
방금이 함수를 처리하기 위해 많은 데이터를 삽입했습니다. 그러나이 함수는 select가 작동하고 함수가 정지하는 이유를 설명하지 않습니다.
아이디어가 있으십니까?
이 테이블에 값이있는 함수가 포함되어 있습니까? 이것은 다중 문장 테이블 값 함수로 알려져 있으며 거의 항상 스칼라 함수보다 느립니다. 기능 코드를 공유 할 수 있습니까? 그것 없이는 우리가 할 수있는 최선은 추측입니다. –
시간이 초과되면 정확히 무엇을 의미합니까? SQL은 단지 그것이 영원히 돌아 가게 할 것입니다. 차단 실행 여부를 확인하기 위해이 기능을 실행할 때 sp_who2를 확인 했습니까? –
성능에 기초한 질문을하면 코드를 공유해야합니다. –