안녕하세요. 평소 지나쳤던 부분에 대해 질문이 있어서 조심스레 질문드립니다.
1. select from (select from ( select 해서
인라인뷰를 많이 쓴 sql이 과연 욕을 먹어야될까요? 최초 인라인뷰가 집계성이거나 그룹핑을 해서 대상이 확 줄어든 상태라면 성능에 큰 차이도 없고 들여쓰기 잘해놓은게 가독성면에서도 좋지 않나요?
2. 제가 알기로 인라인뷰가 대상이 커서 메모리에서 처리 못 하면 그 때 temp table에서 처리하는 걸로 알고 있습니다. 맞나요?
3. 인라인뷰를 사용하면 temp table은 항상 생성되나요? 메모리에서만 처리할 경우 해당 table은 할당만 된 상태로 트랜젝션이 종료되면 반환 받는 걸로 알고 있습니다.
4. UI에서 조회 조건이 다양하게 들어올 경우 기존 원쿼리로 되어 있는 것을 union 으로 쪼개고 where문에 1=decode() 로 바인드변수값에 따라 쿼리 컨트롤을 하면서 최적화된 힌트문을 주는 것으로 튜닝하는 것을 많이 봤는데 이는 잘못된 방식인가요? |