본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_SQL (쿼리문) 처리 및 실행 순서

by 썸머워즈 2019. 2. 18.
반응형

오라클 쿼리문 실행 순서

복잡하지 않은 쿼리문을 작성하게되면 보통 아래 순서로 작성을 하고는 한다.

SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER BY

하지만 우리가 작성한 그 순서대로 쿼리가 실행되지는 않는다.

위와 같이 쿼리를 작성했다면, 해당 쿼리문을 아래와 같은 순서로 처리된다.

FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

좀 더 실행 순서에 대해 파고들어보자.

DB를 사용할 때 ROWNUM을 할당해서 사용하는 경우가 많은데, ORDER BY 해서 SELECT를 해오면 ROWNUM이 뒤죽박죽으로 출력되는 현상을 많이 봐왔을 것이다.

 

또한 WHERE 절로 ROWNUM 관련해서 가져왔는데도 아무 데이터가 안나오는 현상이 발생하는 것도 많이 봐왔을 텐데, 이것 역시도 처리 순서 때문이다.

ROWNUM의 할당 위치는 FROM / WHERE 절 다음이기 때문이다.

 

▷ 전체적인 실행 순서

FROM > ON > JOIN > WHERE > GROUB BY > CUBE + ROLLUP >
HAVING > SELECT > DINTINCT > ORDER BY > TOP

사실 전체적인 실행 순서까지는 알 필요는 없고, 기본 쿼리문 순서만 알고 있다면 충분하다고 생각된다.

 

* 따로 구글링을 해본 결과 실행계획을 봐야 상세한 실행순서를 알 수 있다고는 한다.

반응형


댓글

TOP