전체 뭉치를 반환하는 저장 프로 시저를 실행하고 싶습니다. 그 중 하나는 쉼표로 구분 된 결과 문자열입니다.SQL 쿼리 콤마로 구분 된 문자열로 결과를 반환합니다. (최적화 됨)
은 내가 COALESCE에 대해 읽고 다음과 같이 그것을 수행하는 함수를 만들었습니다 :이 함수를 호출 예상대로 작동 SELECT
DECLARE @ListOfStuff NVARCHAR(4000)
SELECT @ListOfStuff = COALESCE(@ListOfStuff + ', ', '') + Z.SingleStuff
FROM X
INNER JOIN Y ON X.SomeId = Y.Id
INNER JOIN Z ON Y.SomeId = Z.id
WHERE --Some condition
RETURN ISNULL(@ListOfStuff, '')
그리고 내 주에 있습니다. 그러나 절차가 실행되는 데 실제로 시간이 오래 걸리고 종종 시간이 초과됩니다. 내가 궁금해하는 점은 누군가 최적화 방법을 알고 있는지 여부입니다. 나는이 함수를 없애고이 논리를 프로 시저에 통합하면 훨씬 빠르게 실행될 수 있다고 믿지만이 방법으로 COALESCE를 사용하는 sub select를 가질 방법을 찾지 못했습니다.
이 아이디어를 어떻게 최적화 할 수 있습니까?
을 사용하고있는 RDBMS 및 버전 : 다음과 같이 당신이 찾고있는 솔루션에
내 추측은? – JNK