2014-05-21 3 views
2

나는 Oracle에서 새로운 비이다, 나는 SQL 프로필을 이해하고 그들을 구현하려고합니다. 여기에서 SQL Advisor를 실행 중이며 아래 권장 사항이 있습니다.Oracle의 Sql 프로필

1)이 명령문에 대해 병렬 실행을 사용하려면 권장 SQL 프로파일을 승인 해보십시오. 99.7 (혜택) 2) 권장 SQL 프로파일을 받아 들일 것을 고려하십시오. (병렬 힌트를 사용하여 수행 할 수 있습니다) 하지만 두 번째 옵션을 구현할 때 설명 계획은 병렬 힌트 (첫 번째)와 같은 계획을 보여줍니다. 두 번째 권장 프로필도 첫 번째 프로필과 동일합니까? v $ px_ 테이블에서이 쿼리에 사용 된 차수를 보려고했지만 아무 것도 얻지 못했습니다.

감사

답변

2

당신의 프로파일이 어떻게 작동하는지 이해하는 케리 오스본에서 this article의 방법을 사용합니다.

select hint as outline_hints 
from 
(
    select 
    p.name, 
    p.signature, 
    p.category, 
    row_number() over 
     (partition by sd.signature, sd.category order by sd.signature) row_num, 
    extractValue(value(t), '/hint') hint 
    from 
    sys.sqlobj$data sd, 
    dba_sql_profiles p, 
    table(xmlsequence(extract(xmltype(sd.comp_data), '/outline_data/hint'))) t 
    where sd.obj_type = 1 
    and p.signature = sd.signature 
    and p.category = sd.category 
    and p.name like ('<add profile_name from above>') 
) 
order by row_num; 

SQL 프로파일이 문서화되지 않은 힌트 가득 :

짧은 버전은 프로파일을 수용 select * from dba_sql_profiles order by last_modified desc;와 함께 새로운 PROFILE_NAME을 찾은 다음 힌트를 찾기 위해이 쿼리를 실행하는 것입니다. 힌트를 질문에 추가 할 수는 있지만 해독 할 수는 없습니다. SQL 프로파일은 깔끔한 아이디어이지만 투명하지는 않습니다.

+0

의견을 보내 주셔서 감사합니다. – user3171342

관련 문제