이 질문은 SQL 서버에서 본 적이있는 bizarrest 동작에 대한 설명을 얻는 데 필요한 해결책을 찾는데별로 도움이되지 않습니다. 저장 프로 시저 성능 - 이것은 WILD입니까?
나는 다음과 같은 서명이 저장 프로 시저했다 : 매개 변수의 특정 설정을 감안할 때alter procedure MySP @param1 uniqueidentifier,
@param2 uniqueidentifier,
@param3 uniqueidentifier
을,이 PROC는 C#을에서 실행하는 데 시간이 오래 복용했다 (SqlCommand.ExecuteReader()
사용) - 약 2 분. 직접 쿼리 세션에서 동일한 매개 변수를 사용하여 SP가 2 초 이내에 실행되었습니다.
declare @param1_copy uniqueidentifier,
@param2_copy uniqueidentifier,
@param3_copy uniqueidentifier
select @param1_copy = @param1,
@param2_copy = @param2,
@param3_copy = @param3
와 그리고, SP의 나머지에서는 로컬 복사본 입력 파라미터에 대한 모든 참조를 치환.
Voila. SP는 2 초 이내에 실행됩니다. 그리고 여기 팀은 몹시 괴롭 힙니다.
신사 숙녀 여러분, 이제이 문제를 설명 할 수 있습니까?
놀라운. 우리는 깨닫지 못한 채 교과서 솔루션을 발견했습니다! –