최대 절전 모드에서 사용할 다음 쿼리를 내부 쿼리에서 rownum 변수를 사용하는 방법을 알아낼 수 없습니다. 다음과 같이 쿼리입니다 : 내가하는 방법을 사용할 수 있습니다내부 쿼리의 최대 절전 모드 및 rownum
select emp.prof_key, emp.prof_display_name
from empinst.emp emp
where emp.prof_key IN (select x.object_key
from (select event.object_key as object_key
from empinst.eventlog event
where event.event_name = 'profiles.created'
and event.event_source = 'Profiles'
order by event.created desc) x
where rownum <= 10)
유일한 방법은 두 부분으로 쿼리를 파괴하는 것입니다하지만 난 최대 절전 모드에서 그것을 할 수있는 더 효율적인 방법이 있어야합니다 가정합니다.
미리 감사드립니다.
마이클.
왜 당신이 하위를 제한 할 않습니다
예를 들어,이보기는 당신이 주문 열
event_date
에 따라(event_name, event_source)
의 조합을 위해 최근 10 개의 기록을 필터링하는 데 사용할 수있는 순위 열이 포함됩니다 -질문? 하위 쿼리에서 반환되는 행 수와 실제 결과 집합의 행 수 사이에는 (대개) 많은 관계가 없습니다. – APC이벤트 로그에서 처음 10 개의 행을 임의로 선택하는 것은 의미가 없습니다. 무작위 샘플링을 할 의도가 있습니까? 또한 "rownum variable"은 무엇을 의미합니까? 리터럴 값을 사용했습니다. 대신 바인드 변수를 사용하는 방법을 묻고 있습니까? –
rownum 변수는 행 번호를 리턴하고 페이지 매김에 사용되는 oracle의 예약어입니다. 가장 최근 10 개의 이벤트 로그 레코드를보고 싶기 때문에 10 개의 행만 표시하려는 이유가 있습니다. 10이라는 숫자는 임의적이지만 최대 x 레코드 만보고 싶습니다. 테이블 자체에는 10,000 개의 레코드가 포함될 수 있습니다. 내부 쿼리없이 쿼리를 실행하면 쿼리는 약 24 초 만에 반환하고 내부 쿼리는 0.3 초 내에 반환합니다. –