SQL*Developer 에서 Plan(실행계획) 확인하는 방법

kxsxh·2024년 3월 5일
0


select 문이 실행될 때 인덱스를 사용하여 데이터를 얻어오는지 인덱스를 사용하지 않고
Table Full Scan 하여 얻어오는지 알아봐야 한다.
이럴때 사용하는 것이 SQL Plan(실행계획)이다.

  SQL*Developer 에서는 "SQL편집창(SQL 워크시트)"에 Plan(실행계획) 과 Trace(자동추적) 메뉴가 상단에 있다.
  
  Plan(실행계획) 과 Trace(자동추적) 의 차이는,
  Plan(실행계획) 은 SQL을 실행하기 전에 Oracle Optimizer(옵티마이저, 최적화기)가 SQL을 어떻게 실행할지를 미리 알려주는 것이고,
  Trace(자동추적) 는 SQL을 실행해보고, Oracle Optimizer(옵티마이저, 최적화기)가 SQL을 어떻게 실행했는지 그 결과를 알려주는 것이다.

  그러므로, 정확도로 말하자면, Trace(자동추적)가 Plan(실행계획) 보다 훨씬 정확한 것이다.
  Plan(실행계획) 은 말그대로 계획이라서 Oracle Optimizer가 계획은 그렇게 세우긴 했으나 
  실제 실행할때는 여러가지 이유로 다르게 실행할 수도 있기 때문이다.
  그래서 Trace(자동추적)가 정확하기는 하나 Trace(자동추적)는 한번 실행해봐야 하는것이라서 
  시간이 오래 걸리는 SQL인 경우에는 한참 기다려야 하는 단점이 있기는 하다. 
  실행해야할 SQL문을 블럭으로 잡은 후에
  "SQL 워크시트" 의 상단 아이콘들중에 3번째 아이콘( 계획 설명... (F10) )을 클릭하면 현재 SQL의 Plan(실행계획)을 아래에 보여준다.
  COST(비용)의 값이 적을 수록 속도가 빠른 것이다.

0개의 댓글