DB2로 처음으로 작업합니다. 나는 조합을 수행하는 저장된 proc를 가지고있다. 프로 시저가 시간 종료됩니다. union의 양쪽에있는 select 문은 개별적으로 수행 할 때 아무런 문제없이 신속하게 실행됩니다. 왜 조합이 이것을할까요?DB2 연합이 시간 초과를 유발합니까?
DECLARE Foo CURSOR WITH RETURN FOR
Select STRIP(A.Name) as my_Name,
Case A.Number
when 2 then '(' || strip(char(A.Number)) || ')' strip(B.num)
when 3 then '(' || strip(char(A.Number)) || ')' strip(C.num)
when 4 then '(' || strip(char(A.Number)) || ')' strip(D.num)
when 5 then '(' || strip(char(A.Number)) || ')' strip(E.num)
when 6 then '(' || strip(char(A.Number)) || ')' strip(F.num)
end as my_number
FROM A
left outer join B on A.Number= 2 and A.Name = B.Name
left outer join C on A.Number= 3 and C.Name = B.Name
left outer join D on A.Number= 4 and D.Name = B.Name
left outer join E on A.Number= 5 and E.Name = B.Name
left outer join F on A.Number= 6 and F.Name = B.Name
,session.Temp_Result X
WHERE X.ID = A.ID
GROUP BY A.Number, A.Name, B.Name, C.Name, D.Name, E.Name, F.Name
for fetch only ur;
DROP TABLE Session.Temp_Result;
DECLARE GLOBAL TEMPORARY TABLE session.Temp_Result
( ID DECIMAL(18,0)
);
INSERT INTO session.Temp_Result
select X.ID
from Z, Y, X, Q
where Z.num = 6
and Z.ID = Y.ID2
and Y.GROUPA = 'ABC'
and Y.GROUPB = 'DEF'
and Y.ID = X.ID2
and X.ID = Q.ID
union
select W.ID
from Z, Y, W
where Z.num = 6
and Z.ID = Y.ID2
and Y.GROUPA = 'ABC'
and Y.GROUPB = 'DEF'
and Y.ID = W.ID2
group by ID;
OPEN C_HIERARCHIES;
SELECT 문뿐만 아니라 관련된 각 열의 유형을 게시하십시오. – uselpa
'UNION'이 중복을 제거했다는 것을 감안할 때, 나는 그 문제의 일부라고 느낀다. 리턴되는 행 수 (각 명령문 별), 인덱스 등은 유용한 정보 일 수 있습니다. –
현재 약 5 개의 ID를 리턴하는 각 명령문. 나는 내일까지 어떤 색인 정보도 얻을 수 없다. – Loscas