나는 쿼리를 개선하려고합니다. 나는 열리는 표의 자료 집합이있다. 모든 티켓에는 행이 다르며 모든 행은 티켓의 업데이트를 나타냅니다. 모든 행마다 다른 필드 (dt_update)가 있습니다.쿼리 annidate를 사용하는 쿼리에 대한 Oracle 튜닝
이 색인은 st_remedy_full_light에 있습니다.
IDX_ASSIGNMENT (ASSIGNMENT)
IDX_REMEDY_INC_ID (REMEDY_INC_ID)
IDX_REMDULL_LIGHT_DTUPD (DT_UPDATE)는
이제 쿼리 8 초 동안 수행된다. 나를 위해 높다.
WITH last_ticket AS
(SELECT *
FROM st_remedy_full_light a
WHERE a.dt_update IN
(SELECT MAX(dt_update)
FROM st_remedy_full_light
WHERE remedy_inc_id = a.remedy_inc_id
)
)
SELECT remedy_inc_id, ASSIGNMENT FROM last_ticket
이이 쿼리를 더 나은 할 계획 어떻게 내가 할 수있는 무엇입니까?
P. 이것은 큰 쿼리의 단지 부분이다
추가 정보 : - 529.507 행
를 포함 st_remedy_full_light 표는
'remedy_inc_id'당 'dt_update'가 동일한 'st_remedy_full_light'를 여러 개 지정할 수 있습니까? –
(remedy_inc_id, dt_update)에 대한 색인 또는 아마도 (remedy_inc_id, dt_update, assignment) - Tony Andrews가 제안한 하위 쿼리를 변경하고 싶지 않거나 변경할 수없는 경우에 도움이됩니다. 나는. 각 열에 대한 색인이 아닌 여러 열을 포함하는 단일 색인 - 오라클은 해당 질의에 대해 단일 열 색인 중 하나만 사용할 수 있으며, 세 열 모두를 사용하고 있어도 세 가지를 모두 사용할 수는 없습니다. 질문. 이러한 색인은 Tony Andrew의 제안 검색어도 도움이 될 것입니다. – Boneist
@ EvgeniyK. remedy_inc_id에는 dt_update가 더 있지만 다른 것은 없습니다. – vecio88