2개의 트리 구조 형태를 표현하는 데이터와 1개의 대량의 데이터를
포함하는 테이블을 가지고 있습니다.
A : tree 형태
A_ID |
A_NAME |
A_PATH |
A_UPPER |
1 |
a_1 |
01 |
|
2 |
a_2 |
0101 |
1 |
3 |
a_3 |
0102 |
1 |
B: tree 형태
B_ID |
B_NAME |
B_PATH |
B_UPPER |
1 |
b_1 |
01 |
|
2 |
b_2 |
0101 |
1 |
3 |
b_3 |
0102 |
1 |
C: 대량 데이터
C_ID |
C_NAME |
A_ID(FK) |
B_ID(FK) |
1 |
c_1 |
1 |
2 |
2 |
c_2 |
2 |
3 |
3 |
c_3 |
1 |
1 |
원하는 데이터 형식.
|
1(A - 조건A) |
|
|
2 |
3 |
합계 |
1(B - 조건B) |
2 |
0 |
0 |
0 |
|
3 |
1 |
0 |
1 |
합계 |
1 |
0 |
1 |
** 쿼리형태
SELECT
A_NAME, A_ID, B_NAME, B_ID
,( SELECT COUNT(C_ID)
FROM C ai, B ci, A oi
WHERE ai.B_ID= ci.B_ID AND ai.A_ID = oi.A_ID
AND LENGTH(ci.B_PATH) >= LENGTH(c.B_PATH)
AND SUBSTR(ci.B_PATH, 1, LENGTH(c.B_PATH)) = c.B_PATH
AND LENGTH(oi.A_PATH) >= LENGTH(o.A_PATH)
AND SUBSTR(oi.A_PATH, 1, LENGTH(o.A_PATH)) = o.A_PATH
) VALUE
FROM B c
, A o
WHERE c.B_UPPER = ?(조건B) AND o.A_UPPER = ?(조건A)
ORDER BY o.A_PATH, c.B_PATH
order by를 안한다고 하더라도 그리 성능이 나타나지 않는 관계로
자문을 구합니다.
sql을 이용하는 이유는 위와 같이 조건 A, B가 가변적이기
때문입니다.
이와 같은 통계 데이터를 출력하는 방법론 또는 쿼리 속도에 대한
향상법을 알고싶어 질문을 드립니다.
저 쿼리 속도를 가지고서는 당장(웹) 응답속도가 제대로 나오지 않는
관계로
다른 방법론(PL-SQL, 로직 프로그램 기타등등) 이 있으시다면 작은
힌트라도 던져주시면 잽싸게 주어듣겠습니다. (멍멍~)
|