prior 2

connect by ~ start with ~ order siblings by ~ 문에 대한 Oracle 9i Plan (실행계획) 2

이번에 설명하는 것은 ACL 을 사용자별로 다루지 않고 그룹단위로 다루는 경우를 설명한다. 이보다 더 나은 방법도 얼마든지 많을테지만.. 먼저 실행계획부터.. (눈이 마구 돌아가져.. ㅋㅋ) 아래 그림을 보면 딱 눈에 보이시죠..? Filter 와 Hash Join, Count 등에 Nested Loops (Cost=471 Card=23 Bytes=3K) 가 동일하게 사용되었습니다. 그 안쪽에 있는 Nested Loops (Cost=2 Card=23 Bytes=1K) 는 테이블을 악세스 하지 않고 Index 에서만 돕니다. 이제 쿼리를 함 보겠습니다. 위에서 설명했던 첫번째 Netsted Loop 에 해당하는 것이 (select seq_category ~ group by seq_category) 입니다...

select .. from .. where .. connect by (prior) .. = (prior) .. start with ..

가계도를 하나의 DB 테이블에 담았다가 손쉽게 쿼리하여 가져올 수는 없을까..? 분류체계를 정해서 한눈에 보여질 수 있도록 할 수 있지 않을까..? 등등에 대해서 목마름을 씻어주는 쿼리 문법. 일단 오라클에는 있고, MySQL 에는 비슷한 다른 방식이 있다는데.. DB2 나 Sybase 등에는 어떤 것들이 있을까.. 이건 숙제다. connect by 를 이용하려면 DB 모델링에서 하나의 테이블 안에 트리 구조를 위한 조치를 해야 하는데, 자신의 코드와 트리 구조상 상위 위치의 코드 2개를 가지고 있어야 한다. 이를테면, 아래에 예를든 것에서, w2_category 테이블에는.. 자신의 코드인 seq_category 와 상위 코드인 bef_category 를 이용했다. select * from w2_cat..