SELECT a.prod_id, a.prod_no, a.order_no, a.order_item_no,a.prod_dt
row_number() over (partition by a.prod_id, a.prod_no
order by a.prod_dt) rank
FROM order a, -- order 데이터 50만건
(SELECT rownum rank FROM emp WHERE rownum <= 10000) b
WHERE a.qty >= b.rank
AND a.ordr <> 'TL'
AND a.prod_id = 'PPU101' -- 조건절을 붙이면 데이터 5만건
AND ROWNUM <10000
오래 걸리네요.
1. row_number() over (partition by a.prod_id, a.prod_no
order by a.prod_dt) rank
에서 인덱스를 만들려면 어떻게 만들어 줘야 할까요?
-
2. SELECT rownum rank FROM emp WHERE rownum <= 10000) b --> 무엇을 하고자 하는건지 이해가 안가네요?
WHERE a.qty >= b.rank ~~~
AND ROWNUM <10000
- 무슨 의미인가요? 이해할수가 없네요.
- 더 좋은 방법이 없나요? 이놈때문에 늦어지는것 같은데요.
3. 전제적으로 sql을 변경한다면 어떻게 해야 하나요?
|