{"id":1690,"date":"2018-07-11T22:27:11","date_gmt":"2018-07-12T01:27:11","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=1690"},"modified":"2022-10-21T21:17:54","modified_gmt":"2022-10-22T00:17:54","slug":"4-tecnicas-para-modificar-um-plano-de-execucao-sem-alterar-a-instrucao-sql","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/4-tecnicas-para-modificar-um-plano-de-execucao-sem-alterar-a-instrucao-sql\/","title":{"rendered":"4 t\u00e9cnicas para modificar um plano de execu\u00e7\u00e3o sem alterar a instru\u00e7\u00e3o SQL"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para melhorar de desempenho das aplica\u00e7\u00f5es muitas vezes precisamos fazer alguns ajustes nas instru\u00e7\u00f5es SQL e em algumas situa\u00e7\u00f5es n\u00e3o podemos alterar o c\u00f3digo pois a aplica\u00e7\u00e3o \u00e9 de terceiros ou apesar de ser um desenvolvimento interno da empresa os prazos para altera\u00e7\u00e3o s\u00e3o muito longos. J\u00e1 faz algum tempo que modificar um plano de execu\u00e7\u00e3o sem alterar a instru\u00e7\u00e3o SQL deixou de ser um grande obst\u00e1culo, neste artigo vamos apresentar 4 t\u00e9cnicas diferentes que podemos utilizar para isto e mostrar em qual tipo de licen\u00e7a do Oracle Database 11gR2 elas podem ser aplicadas<\/span>.<\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-size: 18pt;\">1) Advanced Query Rewrite<\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A primeira e a mais antiga destas t\u00e9cnicas \u00e9 a Advanced Query Rewrite, esta op\u00e7\u00e3o pode ser utilizada em todas as licen\u00e7as do 11gR2 inclusive na Express Edition. Para exemplificar a sua aplica\u00e7\u00e3o vamos fazer a simula\u00e7\u00e3o com uma consulta que ser\u00e1 utilizada em todas as simula\u00e7\u00f5es das 4 t\u00e9cnicas abordadas neste artigo. Esta consulta foi criada para demonstra\u00e7\u00e3o das 4 t\u00e9cnicas e n\u00e3o representa as melhores pr\u00e1ticas na cria\u00e7\u00e3o de uma instru\u00e7\u00e3o SQL.<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Nesta simula\u00e7\u00e3o vamos:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">1.1) Criar um usu\u00e1rio com os privil\u00e9gios necess\u00e1rios<\/span><br \/>\n<span style=\"font-size: 12pt;\">1.2) Criar a tabela e \u00edndice da consulta<\/span><br \/>\n<span style=\"font-size: 12pt;\">1.3) Executar a consulta original da aplica\u00e7\u00e3o<\/span><br \/>\n<span style=\"font-size: 12pt;\">1.4) Executar a consulta com altera\u00e7\u00e3o para melhoria do desempenho<\/span><br \/>\n<span style=\"font-size: 12pt;\">1.5) Utilizar Query Rewrite para criar a equival\u00eancia entre as consultas<\/span><br \/>\n<span style=\"font-size: 12pt;\">1.6) Executar a consulta original ap\u00f3s a cria\u00e7\u00e3o da equival\u00eancia<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.1) Criar um usu\u00e1rio com os privil\u00e9gios<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para criar o usu\u00e1rio CURSO02 com os privil\u00e9gios necess\u00e1rios para utilizar a op\u00e7\u00e3o Advanced Query Rewrite precisamos conectar no banco de dados com usu\u00e1rio SYS.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM V<span class=\"re0\">$VERSION<\/span> where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nBANNER<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nOracle Database 11g Express Edition Release 11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0 <span class=\"sy0\">-<\/span> 64bit Production<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> CREATE USER curso02 identified by curso02 <span class=\"kw1\">default<\/span> tablespace users temporary tablespace temp<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nUser created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> alter user curso02 quota unlimited on users<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nUser altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant connect to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant resource to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant query rewrite to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> GRANT CREATE MATERIALIZED VIEW TO curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant execute on sys<span class=\"sy0\">.<\/span>DBMS_ADVANCED_REWRITE to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant select any dictionary to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.2) Criar a tabela e \u00edndice da consulta<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> create table dbtw053 <span class=\"br0\">&#40;<\/span>matr <span class=\"sy0\">,<\/span> category<span class=\"sy0\">,<\/span> created<span class=\"sy0\">,<\/span> descr<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp;<span class=\"kw1\">as<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp;select rownum<span class=\"sy0\">,<\/span> mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span> <span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> sysdate<span class=\"sy0\">-<\/span>mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span> <span class=\"nu0\">2000<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'DBTimeWizard - Performance and Tuning'<\/span> from dual connect by level <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">1000000<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela criada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> create index dbtw053_category_idx on dbtw053<span class=\"br0\">&#40;<\/span>category<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n\u00cdndice criado<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> dbms_stats<span class=\"sy0\">.<\/span>gather_table_stats<span class=\"br0\">&#40;<\/span>ownname<span class=\"sy0\">=&gt;<\/span> USER<span class=\"sy0\">,<\/span> tabname<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'DBTW053'<\/span><span class=\"sy0\">,<\/span> method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'for all columns size auto'<\/span><span class=\"sy0\">,<\/span>cascade<span class=\"sy0\">=&gt;<\/span><span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span>force<span class=\"sy0\">=&gt;<\/span><span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span>degree<span class=\"sy0\">=&gt;<\/span><span class=\"nu0\">16<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.3) Executar a consulta original da aplica\u00e7\u00e3o<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A consulta que supostamente extraimos da aplica\u00e7\u00e3o possui um HINT que for\u00e7a o Otimizador a utilizar o \u00edndice DBTW053_CATEGORY_IDX.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;669gr4xtnvqa1<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span><br \/>\nGROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">1755005131<\/span><br \/>\n<br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; 106K<span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.67<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">21<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.67<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">21<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.59<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> DBTW053_CATEGORY_IDX <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">225<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">03<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.08<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">222<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=<\/span><span class=\"nu0\">455<\/span> AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"nu0\">559<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">22<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">No plano de execu\u00e7\u00e3o acima podemos observar que foram lidas 105 mil linhas na tabela utilizando os ROWID selecionados no \u00edndice e o tempo total gasto para executar a consulta foi 67 cent\u00e9simos de segundo.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.4) Executar a consulta com altera\u00e7\u00e3o<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">O Otimizador do banco Oracle evolui muito e na vers\u00e3o 11gR2 disponibiliza planos de execu\u00e7\u00e3o muito eficientes quando as estat\u00edsticas do banco s\u00e3o mantidas utilizando as melhores pr\u00e1ticas. A inclus\u00e3o de HINT na consulta deve ser feita em situa\u00e7\u00f5es muito especiais, no nosso exemplo vamos excluir o HINT e deixar que o Otimizador decida qual \u00e9 a melhor op\u00e7\u00e3o para montagem do plano de execu\u00e7\u00e3o.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.2%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n46at379yy19gc &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;46at379yy19gc<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A<br \/>\nWHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">3756543841<\/span><br \/>\n<br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2328<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.19<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2328<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.19<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2320<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.12<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=<\/span><span class=\"nu0\">455<\/span> AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"nu0\">559<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">20<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer uma opera\u00e7\u00e3o TABLE FULL SCAN e o tempo de execu\u00e7\u00e3o caiu de 67 cent\u00e9simos de segunda para 19 cent\u00e9simos, um redu\u00e7\u00e3o de 71% no tempo de execu\u00e7\u00e3o.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.5) Utilizar Query Rewrite para criar a equival\u00eancia<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Agora que sabemos que o HINT inclu\u00eddo na consulta esta prejudicando o seu desempenho, vamos utilizar o pacote DBMS_ADVANCED_REWRITE para gerar uma equival\u00eancia entre as duas consultas, ou seja, toda vez que a aplica\u00e7\u00e3o enviar ao banco a consulta com HINT o Otimizador vai executar a consulta sem o HINT.<\/span><br \/>\n<span style=\"font-size: 12pt;\">O pacote DBMS_ADVANCED_REWRITE exige que as consultas para as quais esta sendo gerada a equival\u00eancia sejam diferentes e n\u00e3o considera diferentes as consultas cuja diferen\u00e7a esteja somente no HINT, pois este ultimo \u00e9 considerado como um coment\u00e1rio. Por esta raz\u00e3o no nosso exemplo alem de excluir o HINT na consulta melhorada, adicionamos 0 ao campo CATEGORY que \u00e9 um campo num\u00e9rico e esta adi\u00e7\u00e3o n\u00e3o vai representar altera\u00e7\u00e3o no seu valor final.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> BEGIN<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; sys<span class=\"sy0\">.<\/span>DBMS_ADVANCED_REWRITE<span class=\"sy0\">.<\/span>DECLARE_REWRITE_EQUIVALENCE <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'rewrite_dbtw053'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; source_stmt &nbsp; &nbsp; &nbsp; <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'SELECT \/*+ INDEX(A dbtw053_category_idx) *\/ \/* DBTW-053.1 *\/ category, descr, count(1) qtde FROM dbtw053 A WHERE category BETWEEN 455 AND 559 GROUP BY category, descr'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; destination_stmt &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'SELECT \/* DBTW-053.2 *\/ category, descr, count(1) qtde FROM dbtw053 A WHERE category+0 BETWEEN 455 AND 559 GROUP BY category, descr'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; &nbsp; validate &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">FALSE<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp; &nbsp; rewrite_mode &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'TEXT_MATCH'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> set long <span class=\"nu0\">9999<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> select <span class=\"sy0\">*<\/span> from DBA_REWRITE_EQUIVALENCES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SOURCE_STMT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DESTINATION_STMT<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">--------------------------------------------------------------------------------<\/span> <span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nREWRITE_MO<br \/>\n<span class=\"sy0\">----------<\/span><br \/>\nREWRITE_DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> co SELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE cate<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unt<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> gory<span class=\"sy0\">+<\/span><span class=\"nu0\">0<\/span> BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; descr<br \/>\nTEXT_MATCH<br \/>\n<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1.6) Executar a consulta original ap\u00f3s a cria\u00e7\u00e3o da equival\u00eancia<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para maior clareza na analise da execu\u00e7\u00e3o da consulta ap\u00f3s a cria\u00e7\u00e3o da equival\u00eancia vamos limpar a SHARED POOL e para que a Advanced Query Rewrite funcione vamos alterar dois par\u00e2metros do banco a n\u00edvel de sess\u00e3o: QUERY_REWRITE_INTEGRITY e QUERY_REWRITE_ENABLED.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Conectado com usuario SYS limpar a SHARED POOL<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">SYSTEM<\/span><\/a> <a href=\"http:\/\/www.php.net\/flush\"><span class=\"kw3\">flush<\/span><\/a> shared_pool<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a> altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> De volta para a sess\u00e3o <span class=\"kw1\">do<\/span> usuario CURSO02<span class=\"sy0\">,<\/span> alterar na sess\u00e3o os parametros de QUERY_REWRITE<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET query_rewrite_integrity <span class=\"sy0\">=<\/span> TRUSTED<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET query_rewrite_enabled <span class=\"sy0\">=<\/span> <span class=\"kw4\">TRUE<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> de<br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">-------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;669gr4xtnvqa1<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span><br \/>\nGROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">3756543841<\/span><br \/>\n<br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2335<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.25<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8328<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2335<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">29<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.25<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8328<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2327<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.18<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8328<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">+<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">&gt;=<\/span><span class=\"nu0\">455<\/span> AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">+<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"nu0\">559<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">21<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer uma opera\u00e7\u00e3o TABLE FULL SCAN apesar de termos executado a consulta original com o HINT e para confirmar que houve a substitui\u00e7\u00e3o da consulta no momento da execu\u00e7\u00e3o podemos observar na sess\u00e3o PREDICATE INFORMATION que o filtro CATEGORY possui a adi\u00e7\u00e3o do valor 0.<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-size: 18pt;\">2) SQL PATCH<\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A segunda t\u00e9cnica \u00e9 o SQL PATCH, esta op\u00e7\u00e3o tamb\u00e9m pode ser utilizada em todas as licen\u00e7as do 11gR2 inclusive na Express Edition. Para exemplificar a sua aplica\u00e7\u00e3o vamos fazer a simula\u00e7\u00e3o utilizando a mesma consulta e na mesma base Oracle Express Edition onde j\u00e1 criamos o usu\u00e1rio CURSO02.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">OBS: A equival\u00eancia criada na demonstra\u00e7\u00e3o anterior foi exclu\u00edda para n\u00e3o interferir nesta simula\u00e7\u00e3o.<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Nesta simula\u00e7\u00e3o vamos:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">2.1) Executar a consulta original da aplica\u00e7\u00e3o<\/span><br \/>\n<span style=\"font-size: 12pt;\">2.2) Criar um SQL PATCH para excluir o HINT da consulta<\/span><br \/>\n<span style=\"font-size: 12pt;\">2.3) Executar a consulta original novamente<\/span><br \/>\n&nbsp;<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">2.1) Executar a consulta da aplica\u00e7\u00e3o<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM V<span class=\"re0\">$VERSION<\/span> where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nBANNER<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nOracle Database 11g Express Edition Release 11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0 <span class=\"sy0\">-<\/span> 64bit Production<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;669gr4xtnvqa1<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span><br \/>\nGROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">1755005131<\/span><br \/>\n<br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; 106K<span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.67<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">21<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.67<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">21<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.59<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> DBTW053_CATEGORY_IDX <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">225<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">03<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.08<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">222<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=<\/span><span class=\"nu0\">455<\/span> AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"nu0\">559<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">22<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">No resultado da consulta podemos observar que foram lidas 105 mil linhas na tabela utilizando os ROWID selecionados no \u00edndice e o tempo total gasto para executar a consulta foi 67 cent\u00e9simos de segundo.\u00a0<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">2.2) Criar um SQL PATCH para excluir o HINT da consulta<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Antes de criarmos o SQL PATCH precisamos conectar com usu\u00e1rio SYS para atribuir o privil\u00e9gio EXECUTE nos pacotes: DBMS_SQLDIAG_INTERNAL e DBMS_SQLDIAG ao usu\u00e1rio CURSO02.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Conectar com usu\u00e1rio SYS para atribuir permiss\u00e3o de EXECUTE nos pacotes DBMS_SQLDIAG_INTERNAL e DBMS_SQLDIAG<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant execute on DBMS_SQLDIAG_INTERNAL to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant execute on DBMS_SQLDIAG to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Conectar novamente com usu\u00e1rio CURSO02<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> set serveroutput on size <span class=\"nu0\">9999<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"kw2\">declare<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp;m_clob &nbsp;clob<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;begin<br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp;select sql_fulltext into m_clob<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp;from v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; where sql_id <span class=\"sy0\">=<\/span> <span class=\"st_h\">'&amp;m_sql_id'<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp; &nbsp; and child_number <span class=\"sy0\">=<\/span> <span class=\"sy0\">&amp;<\/span>m_child_no <span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp; &nbsp; &nbsp;sys<span class=\"sy0\">.<\/span>dbms_sqldiag_internal<span class=\"sy0\">.<\/span>i_create_patch<span class=\"br0\">&#40;<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sql_text &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> m_clob<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hint_text &nbsp; <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'IGNORE_OPTIM_EMBEDDED_HINTS'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'Patch_&amp;m_sql_id'<\/span><br \/>\n&nbsp;<span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">14<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">end<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">15<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">200<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> select NAME<span class=\"sy0\">,<\/span> CREATED<span class=\"sy0\">,<\/span> &nbsp;SQL_TEXT from DBA_SQL_PATCHES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CREATED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SQL_TEXT<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">--------------------<\/span> <span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nPatch_669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu8\">04<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">18<\/span> <span class=\"nu0\">19<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">12<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">37<\/span><span class=\"sy0\">,<\/span><span class=\"nu8\">00<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> co<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu8\">0000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unt<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;descr<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Observe que foi criado um <span style=\"font-size: 10pt;\">SQL PATCH<\/span> para a consulta original onde foi inclu\u00eddo o <span style=\"font-size: 10pt;\">HINT<\/span> <span style=\"font-size: 10pt;\">IGNORE_OPTIM_EMBEDDED_HINTS<\/span> que for\u00e7ar\u00e1 o Otimizador a ignorar qualquer <span style=\"font-size: 10pt;\">HINT<\/span> existente na consulta.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">2.3) Executar a consulta original novamente<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHILD_NUMBER<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n669gr4xtnvqa1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;669gr4xtnvqa1<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span><br \/>\nGROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">3756543841<\/span><br \/>\n<br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2328<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.18<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2328<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.18<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2320<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.11<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=<\/span><span class=\"nu0\">455<\/span> AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=<\/span><span class=\"nu0\">559<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nNote<br \/>\n<span class=\"sy0\">-----<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">-<\/span> SQL patch <span class=\"st0\">&quot;Patch_669gr4xtnvqa1&quot;<\/span> used <span class=\"kw1\">for<\/span> this statement<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">25<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> sys<span class=\"sy0\">.<\/span>DBMS_SQLDIAG<span class=\"sy0\">.<\/span>drop_sql_patch<span class=\"br0\">&#40;<\/span>name <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'Patch_669gr4xtnvqa1'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPL<span class=\"sy0\">\/<\/span>SQL procedure successfully completed<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer a opera\u00e7\u00e3o TABLE FULL SCAN apesar da consulta possuir o HINT que pede para utilizar o \u00edndice, alem disso podemos verificar na se\u00e7\u00e3o NOTE o coment\u00e1rio:<br \/>\n[SQL patch &#8220;Patch_669gr4xtnvqa1&#8221; used for this statement]<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-size: 18pt;\">3) SQL PLAN MANAGEMENT<\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A terceira t\u00e9cnica utiliza o SQL PLAN MANAGEMENT que pode ser utilizada somente com a licen\u00e7a Enterprise Edition do 11gR2. Nas licen\u00e7as Express Edition e Standard Edition os pacotes do SPM est\u00e3o dispon\u00edveis porem eles n\u00e3o funcionam adequadamente, no <strong><a href=\"https:\/\/blogs.oracle.com\/optimizer\/does-the-use-of-sql-plan-management-and-the-dbmsspm-database-package-require-a-tuning-or-diagnostic-pack-license\" target=\"_blank\" rel=\"noopener\">artigo<\/a><\/strong> publicado no blog ORACLE OPTIMIZER fica claro que o SPM est\u00e1 dispon\u00edvel para licen\u00e7a Enterprise Edition e n\u00e3o requer licen\u00e7as adicionais como as options Diagnostic &amp; Tuning Pack.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para exemplificar a sua aplica\u00e7\u00e3o vamos fazer uma simula\u00e7\u00e3o utilizando a mesma consulta das simula\u00e7\u00f5es anteriores, porem agora vamos utilizar uma base Oracle 11gR2 Enterprise Edition.<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Nesta simula\u00e7\u00e3o vamos:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">3.1) Criar um usu\u00e1rio com os privil\u00e9gios necess\u00e1rios<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.2) Criar a tabela e \u00edndice da consulta<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.3) Executar a consulta original da aplica\u00e7\u00e3o<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.4) Executar a consulta com altera\u00e7\u00e3o para melhoria do desempenho<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.5) Criar a SQL PLAN BASELINE<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.6) Incluir o plano original na BASELINE<\/span><br \/>\n<span style=\"font-size: 12pt;\">3.7) Executar a consulta original novamente<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.1) Criar um usu\u00e1rio com os privil\u00e9gios<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para criar o usu\u00e1rio CURSO02 com os privil\u00e9gios necess\u00e1rios precisamos conectar no banco de dados com usu\u00e1rio SYS.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Conectar na base com usu\u00e1rio SYS<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM V<span class=\"re0\">$VERSION<\/span> where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nBANNER<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nOracle Database 11g Enterprise Edition Release 11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>4<span class=\"sy0\">.<\/span>0 <span class=\"sy0\">-<\/span> 64bit Production<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> CREATE USER curso02 identified by curso02 <span class=\"kw1\">default<\/span> tablespace users temporary tablespace temp<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nUser created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> alter user curso02 quota unlimited on users<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nUser altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant dba to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant execute on DBMS_SPM to curso02<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.2) Criar a tabela e \u00edndice da consulta<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> create table dbtw053 <span class=\"br0\">&#40;<\/span>matr <span class=\"sy0\">,<\/span> category<span class=\"sy0\">,<\/span> created<span class=\"sy0\">,<\/span> descr<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp;<span class=\"kw1\">as<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp;select rownum<span class=\"sy0\">,<\/span> mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span> <span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> sysdate<span class=\"sy0\">-<\/span>mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span> <span class=\"nu0\">2000<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'DBTimeWizard - Performance and Tuning'<\/span> from dual connect by level <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">1000000<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela criada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> create index dbtw053_category_idx on dbtw053<span class=\"br0\">&#40;<\/span>category<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n\u00cdndice criado<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> dbms_stats<span class=\"sy0\">.<\/span>gather_table_stats<span class=\"br0\">&#40;<\/span>ownname<span class=\"sy0\">=&gt;<\/span> USER<span class=\"sy0\">,<\/span> tabname<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'DBTW053'<\/span><span class=\"sy0\">,<\/span> method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'for all columns size auto'<\/span><span class=\"sy0\">,<\/span>cascade<span class=\"sy0\">=&gt;<\/span><span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span>force<span class=\"sy0\">=&gt;<\/span><span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span>degree<span class=\"sy0\">=&gt;<\/span><span class=\"nu0\">16<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.3) Executar a consulta original da aplica\u00e7\u00e3o<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A consulta que supostamente extra\u00edmos da aplica\u00e7\u00e3o possui um HINT que for\u00e7a o Otimizador a utilizar o \u00edndice DBTW053_CATEGORY_IDX.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;1vtkt906qhga8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">1559473304<\/span><br \/>\n<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; 106K<span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">07.08<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2088<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">07.08<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2088<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">07.06<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2088<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">07.05<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2088<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> DBTW053_CATEGORY_IDX <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">225<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.19<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">222<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">210<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">24<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">No plano de execu\u00e7\u00e3o acima podemos observar que foram lidas 105 mil linhas na tabela utilizando os ROWID selecionados no \u00edndice e o tempo total gasto para executar a consulta foi 7 segundos e 8 cent\u00e9simos.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.4) Executar a consulta com altera\u00e7\u00e3o<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos executar a consulta novamente sem o HINT para dar mais liberdade de decis\u00e3o ao Otimizador<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.2%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\naa2v8aq8t17w2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;aa2v8aq8t17w2<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM<br \/>\ndbtw053 A WHERE category BETWEEN <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY<br \/>\ncategory<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.77<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.77<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.75<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">290<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">9<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.74<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">23<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer uma opera\u00e7\u00e3o TABLE FULL SCAN e o tempo de execu\u00e7\u00e3o caiu de 7 segundos e 8 cent\u00e9simos para 1 segundo e 77 cent\u00e9simos, um redu\u00e7\u00e3o de 75% no tempo de execu\u00e7\u00e3o.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.5) Criar a SQL PLAN BASELINE<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Agora vamos criar uma SQL PLAN BASELINE manualmente onde vamos colocar o plano que faz a opera\u00e7\u00e3o TABLE FULL SCAN como o plano aceit\u00e1vel, para isso vamos utilizar o script <a href=\"http:\/\/dbtimewizard.com.br\/blog\/scripts\/cspb.pdf\" target=\"_blank\" rel=\"noopener\"><strong>cspb.sql<\/strong><\/a>.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> show parameters plan_baseline<br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TYPE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUE<br \/>\n<span class=\"sy0\">------------------------------------<\/span> <span class=\"sy0\">--------------------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\noptimizer_capture_sql_plan_baselines boolean &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw4\">FALSE<\/span><br \/>\noptimizer_use_sql_plan_baselines &nbsp; &nbsp; boolean &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw4\">TRUE<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Obter SQL_ID<span class=\"sy0\">,<\/span> CHILD_NUMBER e PLAN_HASH_VALUE das consultas executadas nas etapas <span class=\"nu0\">3<\/span> e <span class=\"nu0\">4<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col sql_text <span class=\"kw1\">for<\/span> a60<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<span class=\"sy0\">,<\/span> plan_hash_value<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/substr\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span>sql_text<span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">60<\/span><span class=\"br0\">&#41;<\/span> sql_text<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw053%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp;AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER PLAN_HASH_VALUE SQL_TEXT<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span> <span class=\"sy0\">---------------<\/span> <span class=\"sy0\">------------------------------------------------------------<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1559473304<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span><br \/>\naa2v8aq8t17w2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">186720033<\/span> SELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> q<br \/>\n<br \/>\n<span class=\"nu0\">2<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Executar o script <span class=\"st0\">&quot;cspb.sql&quot;<\/span> para criar um SQL PLAN<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">@<\/span>cspb<span class=\"sy0\">.<\/span>sql<span class=\"sy0\">;<\/span><br \/>\nSQL_ID &nbsp; &nbsp; Consulta original <span class=\"sy0\">:<\/span> 1vtkt906qhga8<br \/>\nCHILD<span class=\"co2\"># &nbsp; &nbsp; Consulta original : 0<br \/>\n<\/span>SQL_ID &nbsp; &nbsp; Consulta alterada <span class=\"sy0\">:<\/span> aa2v8aq8t17w2<br \/>\nPLAN_HASH<span class=\"co2\"># Consulta alterada : 186720033<br \/>\n<\/span>SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<span class=\"nu0\">1<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Obter informa\u00e7\u00f5es da SQL PLAN BASELINE criada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT SQL_HANDLE<span class=\"sy0\">,<\/span> PLAN_NAME<span class=\"sy0\">,<\/span> ENABLED<span class=\"sy0\">,<\/span> ACCEPTED<span class=\"sy0\">,<\/span> FIXED &nbsp;FROM &nbsp; DBA_SQL_PLAN_BASELINES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_HANDLE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PLAN_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ENA ACC FIX<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">---<\/span> <span class=\"sy0\">---<\/span> <span class=\"sy0\">---<\/span><br \/>\nSQL_cd29185c945f9cc5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SQL_PLAN_cua8sbka5z7655a5cb76a YES YES NO<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE<span class=\"br0\">&#40;<\/span>DBMS_XPLAN<span class=\"sy0\">.<\/span>DISPLAY_SQL_PLAN_BASELINE<span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sql_handle<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'&amp;sql_handle'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; format<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'basic'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nInforme o valor para sql_handle<span class=\"sy0\">:<\/span> SQL_cd29185c945f9cc5<br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nSQL handle<span class=\"sy0\">:<\/span> SQL_cd29185c945f9cc5<br \/>\nSQL text<span class=\"sy0\">:<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nPlan name<span class=\"sy0\">:<\/span> SQL_PLAN_cua8sbka5z7655a5cb76a &nbsp; &nbsp; &nbsp; &nbsp; Plan id<span class=\"sy0\">:<\/span> <span class=\"nu0\">1516025706<\/span><br \/>\nEnabled<span class=\"sy0\">:<\/span> YES &nbsp; &nbsp; Fixed<span class=\"sy0\">:<\/span> NO &nbsp; &nbsp; &nbsp;Accepted<span class=\"sy0\">:<\/span> YES &nbsp; &nbsp; Origin<span class=\"sy0\">:<\/span> MANUAL<span class=\"sy0\">-<\/span>LOAD<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"nu0\">23<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.6) Incluir o plano original na BASELINE<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Como verificamos na etapa anterior o plano com a opera\u00e7\u00e3o TABLE FULL SCAN foi inclu\u00eddo na BASELINE como ACCEPTED, agora vamos executar a consulta com HINT novamente para que o seu plano que utiliza o \u00edndice seja inclu\u00eddo na BASELINE como NOT ACCEPTED.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Obter informa\u00e7\u00f5es da SQL PLAN BASELINES<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT SQL_HANDLE<span class=\"sy0\">,<\/span> PLAN_NAME<span class=\"sy0\">,<\/span> ENABLED<span class=\"sy0\">,<\/span> ACCEPTED<span class=\"sy0\">,<\/span> FIXED &nbsp;FROM &nbsp; DBA_SQL_PLAN_BASELINES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_HANDLE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PLAN_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ENA ACC FIX<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">---<\/span> <span class=\"sy0\">---<\/span> <span class=\"sy0\">---<\/span><br \/>\nSQL_cd29185c945f9cc5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SQL_PLAN_cua8sbka5z7655a5cb76a YES YES NO<br \/>\nSQL_cd29185c945f9cc5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SQL_PLAN_cua8sbka5z7658b066ca3 YES NO &nbsp;NO<br \/>\n<br \/>\n<span class=\"nu0\">2<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE<span class=\"br0\">&#40;<\/span>DBMS_XPLAN<span class=\"sy0\">.<\/span>DISPLAY_SQL_PLAN_BASELINE<span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sql_handle<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'&amp;sql_handle'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; format<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'basic'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nInforme o valor para sql_handle<span class=\"sy0\">:<\/span> SQL_cd29185c945f9cc5<br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nSQL handle<span class=\"sy0\">:<\/span> SQL_cd29185c945f9cc5<br \/>\nSQL text<span class=\"sy0\">:<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nPlan name<span class=\"sy0\">:<\/span> SQL_PLAN_cua8sbka5z7655a5cb76a &nbsp; &nbsp; &nbsp; &nbsp; Plan id<span class=\"sy0\">:<\/span> <span class=\"nu0\">1516025706<\/span><br \/>\nEnabled<span class=\"sy0\">:<\/span> YES &nbsp; &nbsp; Fixed<span class=\"sy0\">:<\/span> NO &nbsp; &nbsp; &nbsp;Accepted<span class=\"sy0\">:<\/span> YES &nbsp; &nbsp; Origin<span class=\"sy0\">:<\/span> MANUAL<span class=\"sy0\">-<\/span>LOAD<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nPlan name<span class=\"sy0\">:<\/span> SQL_PLAN_cua8sbka5z7658b066ca3 &nbsp; &nbsp; &nbsp; &nbsp; Plan id<span class=\"sy0\">:<\/span> <span class=\"nu0\">2332454051<\/span><br \/>\nEnabled<span class=\"sy0\">:<\/span> YES &nbsp; &nbsp; Fixed<span class=\"sy0\">:<\/span> NO &nbsp; &nbsp; &nbsp;Accepted<span class=\"sy0\">:<\/span> NO &nbsp; &nbsp; &nbsp;Origin<span class=\"sy0\">:<\/span> AUTO<span class=\"sy0\">-<\/span>CAPTURE<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">1559473304<\/span><br \/>\n<br \/>\n<span class=\"sy0\">--------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">--------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> DBTW053_CATEGORY_IDX <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">--------------------------------------------------------------<\/span><br \/>\n<br \/>\n<span class=\"nu0\">40<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">3.7) Executar a consulta original novamente<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Com a BASELINE devidamente carregada vamos executar a consulta original e verificar que plano de execu\u00e7\u00e3o o Otimizador vai escolher.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;1vtkt906qhga8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.65<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.65<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.63<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">290<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">9<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.62<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nNote<br \/>\n<span class=\"sy0\">-----<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">-<\/span> SQL plan baseline SQL_PLAN_cua8sbka5z7655a5cb76a used <span class=\"kw1\">for<\/span> this statement<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">27<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer uma opera\u00e7\u00e3o TABLE FULL SCAN apesar da consulta executada estar com o HINT, tamb\u00e9m podemos observar na se\u00e7\u00e3o NOTE a mensagem: <\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">[SQL plan baseline SQL_PLAN_cua8sbka5z7655a5cb76a used for this statement]<\/span><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<h1><span style=\"font-size: 18pt;\">4) SQL PROFILE<\/span><\/h1>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A quarta e ultima t\u00e9cnica \u00e9 a SQL PROFILE, para utilizar esta op\u00e7\u00e3o no Oracle Database 11gR2 \u00e9 necess\u00e1ria a licen\u00e7a Enterprise Edition e as options DIAGNOSTIC &amp; TUNING PACK.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para exemplificar a sua aplica\u00e7\u00e3o vamos utilizar o mesmo usu\u00e1rio CURSO02 da simula\u00e7\u00e3o anterior e vamos desativar o SQL PLAN MANAGEMENT a n\u00edvel de sess\u00e3o para que o Otimizador desconsidere a BASELINE criada anteriormente.<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">Nesta simula\u00e7\u00e3o vamos:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\">4.1) Executar a consulta original da aplica\u00e7\u00e3o<\/span><br \/>\n<span style=\"font-size: 12pt;\">4.2) Criar uma SQL_PROFILE manualmente da consulta original<\/span><br \/>\n<span style=\"font-size: 12pt;\">4.3) Executar a consulta sem o HINT<\/span><br \/>\n<span style=\"font-size: 12pt;\">4.4) Alterar a OUTLINE da SQL_PROFILE que define o tipo de acesso a tabela<\/span><br \/>\n<span style=\"font-size: 12pt;\">4.5) Executar a consulta original novamente<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4.1) Executar a consulta original da aplica\u00e7\u00e3o<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos executar a consulta com HINT que for\u00e7a a utiliza\u00e7\u00e3o do \u00edndice para acessar a tabela e desativar a SQL PLAN BASELINE gerada na simula\u00e7\u00e3o anterior, alterando o valor do par\u00e2metro OPTIMIZER_USE_SQL_PLAN_BASELINES para FALSE a n\u00edvel de sess\u00e3o.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM V<span class=\"re0\">$VERSION<\/span> where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">2<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nBANNER<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nOracle Database 11g Enterprise Edition Release 11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>4<span class=\"sy0\">.<\/span>0 <span class=\"sy0\">-<\/span> 64bit Production<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> show parameters <a href=\"http:\/\/www.php.net\/pack\"><span class=\"kw3\">pack<\/span><\/a><br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TYPE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VALUE<br \/>\n<span class=\"sy0\">------------------------------------<\/span> <span class=\"sy0\">--------------------------------<\/span> <span class=\"sy0\">-----------------------<\/span><br \/>\ncontrol_management_pack_access &nbsp; &nbsp; &nbsp; string &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DIAGNOSTIC<span class=\"sy0\">+<\/span>TUNING<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET optimizer_use_sql_plan_baselines <span class=\"sy0\">=<\/span> <span class=\"kw4\">FALSE<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nSQL_ID &nbsp;1vtkt906qhga8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">1559473304<\/span><br \/>\n<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; 106K<span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">17.17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1015<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">17.17<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1015<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">17.15<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1015<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> DBTW053 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; 106K &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">17.14<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; 105K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1015<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> DBTW053_CATEGORY_IDX <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">225<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.53<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">222<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">212<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">24<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4.2) Criar uma SQL_PROFILE manualmente da consulta original<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos utilizar o script <a href=\"http:\/\/dbtimewizard.com.br\/blog\/scripts\/coe_xfr_sql_profile.pdf\" target=\"_blank\" rel=\"noopener\"><strong>coe_xfr_sql_profile.sql<\/strong><\/a> para gerar um script no diret\u00f3rio &#8220;c:\\temp&#8221; que ao ser executado vai criar uma SQL PROFILE da consulta original executada na primeira etapa.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/>111<br \/>112<br \/>113<br \/>114<br \/>115<br \/>116<br \/>117<br \/>118<br \/>119<br \/>120<br \/>121<br \/>122<br \/>123<br \/>124<br \/>125<br \/>126<br \/>127<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">@<\/span>coe_xfr_sql_profile 1vtkt906qhga8 <span class=\"nu0\">1559473304<\/span><br \/>\n<br \/>\nParameter <span class=\"nu0\">1<\/span><span class=\"sy0\">:<\/span><br \/>\nSQL_ID <span class=\"br0\">&#40;<\/span>required<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<br \/>\nPLAN_HASH_VALUE AVG_ET_SECS<br \/>\n<span class=\"sy0\">---------------<\/span> <span class=\"sy0\">-----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">186720033<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">673<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">1559473304<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">17<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">247<\/span><br \/>\n<br \/>\nParameter <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span><br \/>\nPLAN_HASH_VALUE <span class=\"br0\">&#40;<\/span>required<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\nValues passed<span class=\"sy0\">:<\/span><br \/>\n~~~~~~~~~~~~~<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;1vtkt906qhga8&quot;<\/span><br \/>\nPLAN_HASH_VALUE<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;1559473304&quot;<\/span><br \/>\n<br \/>\n<br \/>\nExecute coe_xfr_sql_profile_1vtkt906qhga8_1559473304<span class=\"sy0\">.<\/span>sql<br \/>\non TARGET <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">system<\/span><\/a> in order to create a custom SQL Profile<br \/>\nwith plan <span class=\"nu0\">1559473304<\/span> linked to adjusted sql_text<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nCOE_XFR_SQL_PROFILE completed<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Executar script gerado no diret\u00f3rio <span class=\"st0\">&quot;c:<span class=\"es1\">\\t<\/span>emp&quot;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;@<\/span>c<span class=\"sy0\">:<\/span>\\temp\\coe_xfr_sql_profile_1vtkt906qhga8_1559473304<span class=\"sy0\">.<\/span>sql<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM <span class=\"re0\">$Header<\/span><span class=\"sy0\">:<\/span> <span class=\"nu19\">215187.1<\/span> coe_xfr_sql_profile_1vtkt906qhga8_1559473304<span class=\"sy0\">.<\/span>sql 11<span class=\"sy0\">.<\/span>4<span class=\"sy0\">.<\/span>1<span class=\"sy0\">.<\/span>4 <span class=\"nu0\">2018<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span> csierra $<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM Copyright <span class=\"br0\">&#40;<\/span>c<span class=\"br0\">&#41;<\/span> <span class=\"nu0\">2000<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2010<\/span><span class=\"sy0\">,<\/span> Oracle Corporation<span class=\"sy0\">.<\/span> All rights reserved<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM AUTHOR<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; carlos<span class=\"sy0\">.<\/span>sierra<span class=\"sy0\">@<\/span>oracle<span class=\"sy0\">.<\/span>com<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM SCRIPT<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; coe_xfr_sql_profile_1vtkt906qhga8_1559473304<span class=\"sy0\">.<\/span>sql<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM DESCRIPTION<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; This script is generated by coe_xfr_sql_profile<span class=\"sy0\">.<\/span>sql<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; It contains the SQL<span class=\"sy0\">*<\/span>Plus commands to create a custom<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; SQL Profile <span class=\"kw1\">for<\/span> SQL_ID 1vtkt906qhga8 based on plan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; value <span class=\"nu0\">1559473304<\/span><span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; The custom SQL Profile to be created by this script<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; will affect plans <span class=\"kw1\">for<\/span> SQL commands with signature<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; matching the one <span class=\"kw1\">for<\/span> SQL Text below<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; Review SQL Text and adjust accordingly<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM PARAMETERS<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; None<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM EXAMPLE<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; SQL<span class=\"sy0\">&gt;<\/span> START coe_xfr_sql_profile_1vtkt906qhga8_1559473304<span class=\"sy0\">.<\/span>sql<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM NOTES<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> Should be run <span class=\"kw1\">as<\/span> <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">SYSTEM<\/span><\/a> or SYSDBA<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">.<\/span> User must have CREATE ANY SQL PROFILE privilege<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; <span class=\"nu0\">3<\/span><span class=\"sy0\">.<\/span> SOURCE and TARGET systems can be the same or similar<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; <span class=\"nu0\">4<\/span><span class=\"sy0\">.<\/span> To drop this custom SQL Profile after it has been created<span class=\"sy0\">:<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">EXEC<\/span><\/a> DBMS_SQLTUNE<span class=\"sy0\">.<\/span>DROP_SQL_PROFILE<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'coe_1vtkt906qhga8_1559473304'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; <span class=\"nu0\">5<\/span><span class=\"sy0\">.<\/span> Be aware that using DBMS_SQLTUNE requires a license<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM &nbsp; &nbsp; &nbsp;<span class=\"kw1\">for<\/span> the Oracle Tuning <a href=\"http:\/\/www.php.net\/pack\"><span class=\"kw3\">Pack<\/span><\/a><span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>WHENEVER SQLERROR <a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> SQL<span class=\"sy0\">.<\/span>SQLCODE<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><span class=\"kw2\">VAR<\/span> signature NUMBER<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>REM<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><span class=\"kw2\">DECLARE<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;sql_txt CLOB<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;h &nbsp; &nbsp; &nbsp; SYS<span class=\"sy0\">.<\/span>SQLPROF_ATTR<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp;BEGIN<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp;sql_txt <span class=\"sy0\">:=<\/span> q<span class=\"st_h\">'[<br \/>\n&nbsp; 6 &nbsp;SELECT \/*+ INDEX(A dbtw053_category_idx) *\/ \/* DBTW-053.1 *\/ category, descr, count(:&quot;SYS_B_0&quot;) qtde FROM dbtw053 A WHERE category BETWEEN :&quot;SYS_B_1&quot; AND :&quot;SYS_B_2&quot; GROUP BY category, descr<br \/>\n&nbsp; 7 &nbsp;]'<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;h <span class=\"sy0\">:=<\/span> SYS<span class=\"sy0\">.<\/span>SQLPROF_ATTR<span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;q<span class=\"st_h\">'[BEGIN_OUTLINE_DATA]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp;q<span class=\"st_h\">'[IGNORE_OPTIM_EMBEDDED_HINTS]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp;q<span class=\"st_h\">'[OPTIMIZER_FEATURES_ENABLE('<\/span>11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>4<span class=\"st_h\">')]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp;q<span class=\"st_h\">'[DB_VERSION('<\/span>11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>4<span class=\"st_h\">')]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">13<\/span> &nbsp;q<span class=\"st_h\">'[ALL_ROWS]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">14<\/span> &nbsp;q<span class=\"st_h\">'[OUTLINE_LEAF(@&quot;SEL$1&quot;)]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">15<\/span> &nbsp;q<span class=\"st_h\">'[INDEX_RS_ASC(@&quot;SEL$1&quot; &quot;A&quot;@&quot;SEL$1&quot; (&quot;DBTW053&quot;.&quot;CATEGORY&quot;))]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">16<\/span> &nbsp;q<span class=\"st_h\">'[USE_HASH_AGGREGATION(@&quot;SEL$1&quot;)]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">17<\/span> &nbsp;q<span class=\"st_h\">'[END_OUTLINE_DATA]'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">18<\/span> &nbsp;<span class=\"sy0\">:<\/span>signature <span class=\"sy0\">:=<\/span> DBMS_SQLTUNE<span class=\"sy0\">.<\/span>SQLTEXT_TO_SIGNATURE<span class=\"br0\">&#40;<\/span>sql_txt<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">19<\/span> &nbsp;DBMS_SQLTUNE<span class=\"sy0\">.<\/span>IMPORT_SQL_PROFILE <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp;<span class=\"nu0\">20<\/span> &nbsp;sql_text &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> sql_txt<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">21<\/span> &nbsp;profile &nbsp; &nbsp; <span class=\"sy0\">=&gt;<\/span> h<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">22<\/span> &nbsp;name &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'coe_1vtkt906qhga8_1559473304'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">23<\/span> &nbsp;description <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'coe 1vtkt906qhga8 1559473304 '<\/span><span class=\"sy0\">||:<\/span>signature<span class=\"sy0\">||<\/span><span class=\"st_h\">''<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">24<\/span> &nbsp;category &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'DEFAULT'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">25<\/span> &nbsp;validate &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">TRUE<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">26<\/span> &nbsp;replace &nbsp; &nbsp; <span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">TRUE<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">27<\/span> &nbsp;force_match <span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">FALSE<\/span> <span class=\"coMULTI\">\/* TRUE:FORCE (match even when different literals in SQL). FALSE:EXACT (similar to CURSOR_SHARING) *\/<\/span> <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">28<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">29<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>WHENEVER SQLERROR <span class=\"kw1\">CONTINUE<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>SET <span class=\"kw1\">ECHO<\/span> OFF<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SIGNATURE<br \/>\n<span class=\"sy0\">---------------------<\/span><br \/>\n&nbsp;<span class=\"nu0\">14783374037725715653<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"sy0\">...<\/span> manual custom SQL Profile has been created<br \/>\n<br \/>\n<br \/>\nCOE_XFR_SQL_PROFILE_1vtkt906qhga8_1559473304 completed<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>set lines <span class=\"nu0\">200<\/span> pages <span class=\"nu0\">100<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>select name<span class=\"sy0\">,<\/span> created<span class=\"sy0\">,<\/span> type<span class=\"sy0\">,<\/span> status from DBA_SQL_PROFILES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CREATED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TYPE &nbsp; &nbsp;STATUS<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">---------------------------------------------------------------------------<\/span> <span class=\"sy0\">-------<\/span> <span class=\"sy0\">----------<\/span><br \/>\ncoe_1vtkt906qhga8_1559473304 &nbsp; <span class=\"nu8\">05<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">18<\/span> <span class=\"nu0\">22<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">20<\/span><span class=\"sy0\">,<\/span><span class=\"nu8\">000000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MANUAL &nbsp;ENABLED<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4.3) Executar a consulta sem o HINT<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos executar a consulta novamente sem o HINT para obtermos as OUTLINES do plano de execu\u00e7\u00e3o que tem melhor desempenho.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span>SELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>column sql_id new_value m_sql_id<br \/>\nSQL<span class=\"sy0\">&gt;<\/span>column child_number new_value m_child_no<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.2%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\naa2v8aq8t17w2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span>SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'advanced iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nantigo &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy0\">:<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'advanced iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nnovo &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy0\">:<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'aa2v8aq8t17w2'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'advanced iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;aa2v8aq8t17w2<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/* DBTW-053.2 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM<br \/>\ndbtw053 A WHERE category BETWEEN <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY<br \/>\ncategory<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">10.42<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1747<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">10.42<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1747<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">10.40<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1747<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">290<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">9<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">10.39<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8325<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1747<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nQuery Block Name <span class=\"sy0\">\/<\/span> Object Alias <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">-------------------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">-<\/span> SEL$<span class=\"nu19\">1<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> SEL$<span class=\"nu19\">1<\/span> <span class=\"sy0\">\/<\/span> A<span class=\"sy0\">@<\/span>SEL$<span class=\"nu19\">1<\/span><br \/>\n<br \/>\nOutline Data<br \/>\n<span class=\"sy0\">-------------<\/span><br \/>\n<br \/>\n&nbsp; <span class=\"coMULTI\">\/*+<br \/>\n&nbsp; &nbsp; &nbsp; BEGIN_OUTLINE_DATA<br \/>\n&nbsp; &nbsp; &nbsp; IGNORE_OPTIM_EMBEDDED_HINTS<br \/>\n&nbsp; &nbsp; &nbsp; OPTIMIZER_FEATURES_ENABLE('11.2.0.4')<br \/>\n&nbsp; &nbsp; &nbsp; DB_VERSION('11.2.0.4')<br \/>\n&nbsp; &nbsp; &nbsp; ALL_ROWS<br \/>\n&nbsp; &nbsp; &nbsp; OUTLINE_LEAF(@&quot;SEL$1&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; FULL(@&quot;SEL$1&quot; &quot;A&quot;@&quot;SEL$1&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; USE_HASH_AGGREGATION(@&quot;SEL$1&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; END_OUTLINE_DATA<br \/>\n&nbsp; *\/<\/span><br \/>\n<br \/>\nPeeked Binds <span class=\"br0\">&#40;<\/span>identified by position<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">--------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> <span class=\"sy0\">:<\/span>SYS_B_1 <span class=\"br0\">&#40;<\/span>NUMBER<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span> <span class=\"nu0\">455<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> <span class=\"sy0\">:<\/span>SYS_B_2 <span class=\"br0\">&#40;<\/span>NUMBER<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span> <span class=\"nu0\">559<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nColumn Projection Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">-<\/span> <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"br0\">&#91;<\/span>NUMBER<span class=\"sy0\">,<\/span><span class=\"nu0\">22<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;DESCR&quot;<\/span><span class=\"br0\">&#91;<\/span>CHARACTER<span class=\"sy0\">,<\/span><span class=\"nu0\">37<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">COUNT<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#91;<\/span><span class=\"nu0\">22<\/span><span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"br0\">&#91;<\/span>NUMBER<span class=\"sy0\">,<\/span><span class=\"nu0\">22<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;DESCR&quot;<\/span><span class=\"br0\">&#91;<\/span>CHARACTER<span class=\"sy0\">,<\/span><span class=\"nu0\">37<\/span><span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"br0\">&#91;<\/span>NUMBER<span class=\"sy0\">,<\/span><span class=\"nu0\">22<\/span><span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;DESCR&quot;<\/span><span class=\"br0\">&#91;<\/span>CHARACTER<span class=\"sy0\">,<\/span><span class=\"nu0\">37<\/span><span class=\"br0\">&#93;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">57<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4.4) Alterar a OUTLINE da SQL_PROFILE<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para que a SQL_PROFILE gerada na etapa 4.2 desta simula\u00e7\u00e3o force a utiliza\u00e7\u00e3o da opera\u00e7\u00e3o TABLE FULL SCAN no plano de execu\u00e7\u00e3o precisamos alterar a OUTLINE<\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><strong>DE:<\/strong> INDEX_RS_ASC(@&#8221;SEL$1&#8243; &#8220;A&#8221;@&#8221;SEL$1&#8221; (&#8220;DBTW053&#8243;.&#8221;CATEGORY&#8221;))<\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>PARA:<\/strong> FULL(@&#8221;SEL$1&#8243; &#8220;A&#8221;@&#8221;SEL$1&#8221;)<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Esta altera\u00e7\u00e3o ser\u00e1 realizada utilizando o script <a href=\"http:\/\/dbtimewizard.com.br\/blog\/scripts\/fix_sql_profile_hint.pdf\" target=\"_blank\" rel=\"noopener\"><strong>fix_sql_profile_hint.sql<\/strong><\/a> e para verificar o resultado da altera\u00e7\u00e3o vamos utilizar o script <a href=\"http:\/\/dbtimewizard.com.br\/blog\/scripts\/sql_profile_hints11.pdf\" target=\"_blank\" rel=\"noopener\"><strong>sql_profile_hints11.sql<\/strong><\/a>.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span>conn sys<span class=\"sy0\">\/<\/span>oracle<span class=\"sy0\">@<\/span>lab11 <span class=\"kw1\">as<\/span> sysdba<br \/>\nConnected<span class=\"sy0\">.<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">@<\/span>fix_sql_profile_hint<br \/>\nEnter value <span class=\"kw1\">for<\/span> profile_name<span class=\"sy0\">:<\/span> coe_1vtkt906qhga8_1559473304<br \/>\nEnter value <span class=\"kw1\">for<\/span> bad_hint<span class=\"sy0\">:<\/span> INDEX_RS_ASC<span class=\"br0\">&#40;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span> <span class=\"st0\">&quot;A&quot;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;DBTW053&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nEnter value <span class=\"kw1\">for<\/span> good_hint<span class=\"sy0\">:<\/span> FULL<span class=\"br0\">&#40;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span> <span class=\"st0\">&quot;A&quot;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">@<\/span>sql_profile_hints11<br \/>\nInforme o valor para name<span class=\"sy0\">:<\/span> coe_1vtkt906qhga8_1559473304<br \/>\n<br \/>\nHINT<br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------<\/span><br \/>\nBEGIN_OUTLINE_DATA<br \/>\nIGNORE_OPTIM_EMBEDDED_HINTS<br \/>\nOPTIMIZER_FEATURES_ENABLE<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'11.2.0.4'<\/span><span class=\"br0\">&#41;<\/span><br \/>\nDB_VERSION<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'11.2.0.4'<\/span><span class=\"br0\">&#41;<\/span><br \/>\nALL_ROWS<br \/>\nOUTLINE_LEAF<span class=\"br0\">&#40;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nFULL<span class=\"br0\">&#40;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span> <span class=\"st0\">&quot;A&quot;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nUSE_HASH_AGGREGATION<span class=\"br0\">&#40;<\/span><span class=\"sy0\">@<\/span><span class=\"st0\">&quot;SEL<span class=\"es4\">$1<\/span>&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\nEND_OUTLINE_DATA<br \/>\n<br \/>\n<span class=\"nu0\">9<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4.5) Executar a consulta original novamente<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Com a SQL_PROFILE devidamente ajustada vamos executar a consulta original e verificar que plano de execu\u00e7\u00e3o o Otimizador vai escolher.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET optimizer_use_sql_plan_baselines <span class=\"sy0\">=<\/span> <span class=\"kw4\">FALSE<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET statistics_level <span class=\"sy0\">=<\/span> ALL<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN <span class=\"nu0\">455<\/span> AND <span class=\"nu0\">559<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; CATEGORY DESCR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QTDE<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------------------------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">460<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">472<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">559<\/span> DBTimeWizard <span class=\"sy0\">-<\/span> Performance and Tuning &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span><br \/>\n<br \/>\n<span class=\"nu0\">105<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE sql_text LIKE <span class=\"st_h\">'%DBTW-053.1%'<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n1vtkt906qhga8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">--<\/span> Gera o relatorio <span class=\"kw1\">do<\/span> plano de execucao da consulta<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span> FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;1vtkt906qhga8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">1<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nSELECT <span class=\"coMULTI\">\/*+ INDEX(A dbtw053_category_idx) *\/<\/span> <span class=\"coMULTI\">\/* DBTW-053.1 *\/<\/span> category<span class=\"sy0\">,<\/span><br \/>\ndescr<span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span><span class=\"br0\">&#41;<\/span> qtde FROM dbtw053 A WHERE category BETWEEN<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> AND <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&quot;<\/span> GROUP BY category<span class=\"sy0\">,<\/span> descr<br \/>\n<br \/>\nPlan <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">hash<\/span><\/a> value<span class=\"sy0\">:<\/span> <span class=\"nu0\">186720033<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">04.26<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> GROUP BY &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">75<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3150<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">297<\/span> &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">11<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">105<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">04.26<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">04.23<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW053 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;106K<span class=\"sy0\">|<\/span> &nbsp;4351K<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">290<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">9<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;105K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">04.22<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">8319<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8316<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nPredicate Information <span class=\"br0\">&#40;<\/span>identified by operation id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">---------------------------------------------------<\/span><br \/>\n<br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"sy0\">:<\/span>SYS_B_2<span class=\"sy0\">&gt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_1 AND <span class=\"st0\">&quot;CATEGORY&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\nNote<br \/>\n<span class=\"sy0\">-----<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">-<\/span> SQL profile coe_1vtkt906qhga8_1559473304 used <span class=\"kw1\">for<\/span> this statement<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">27<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Analisando o plano de execu\u00e7\u00e3o verificamos que o Otimizador escolheu fazer uma opera\u00e7\u00e3o TABLE FULL SCAN apesar da consulta executada estar com o HINT, tamb\u00e9m podemos observar na se\u00e7\u00e3o NOTE a mensagem: <\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">[SQL profile coe_1vtkt906qhga8_1559473304 used for this statement]<\/span><\/p>\n<h1 style=\"text-align: justify;\"><span style=\"font-size: 18pt;\">Conclus\u00e3o<\/span><\/h1>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Existem algumas op\u00e7\u00f5es para modificar o plano de execu\u00e7\u00e3o sem alterar o c\u00f3digo da aplica\u00e7\u00e3o, a melhor op\u00e7\u00e3o vai depender do tipo de altera\u00e7\u00e3o necess\u00e1ria e do licenciamento da base que estivermos trabalhando, no quadro abaixo podemos visualizar facilmente o tipo de licen\u00e7a necess\u00e1ria para cada uma das t\u00e9cnicas apresentadas neste artigo.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/07\/Licen\u00e7a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1689\" src=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/07\/Licen\u00e7a.jpg\" alt=\"Licen\u00e7a\" width=\"801\" height=\"243\" srcset=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/07\/Licen\u00e7a.jpg 801w, http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/07\/Licen\u00e7a-300x91.jpg 300w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h1><span style=\"font-size: 18pt;\">Refer\u00eancias<\/span><\/h1>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"https:\/\/gavinsoorma.com\/2009\/06\/dbms_advanced_rewrite-tuning-without-touching-the-code\/\" target=\"_blank\" rel=\"noopener\">https:\/\/gavinsoorma.com\/<\/a><\/span><\/strong><\/p>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"http:\/\/kerryosborne.oracle-guy.com\/2009\/07\/why-isnt-oracle-using-my-outline-profile-baseline\/\" target=\"_blank\" rel=\"noopener\">http:\/\/kerryosborne.oracle-guy.com\/<\/a><\/span><\/strong><\/p>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"https:\/\/carlos-sierra.net\/2012\/04\/09\/custom-sql-profile-and-plan-stability-on-10g\/\" target=\"_blank\" rel=\"noopener\">https:\/\/carlos-sierra.net\/<\/a><\/span><\/strong><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n<a href=\"http:\/\/dbtimewizard.com.br\/treinamento\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1255\" src=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/10\/promo_cur02.jpg\" alt=\"Promo-D75L\" width=\"330\" height=\"242\" \/><\/a><\/p>\n<p><a href=\"https:\/\/youtu.be\/l6OphhTle9I\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1215\" src=\"http:\/\/dbtimewizard.com.br\/wp-content\/uploads\/2018\/01\/video-02-300x168.jpg\" alt=\"video-02\" width=\"330\" height=\"242\" \/><\/a><br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para melhorar de desempenho das aplica\u00e7\u00f5es muitas vezes precisamos fazer alguns ajustes nas instru\u00e7\u00f5es SQL e em algumas situa\u00e7\u00f5es n\u00e3o podemos alterar o c\u00f3digo pois a aplica\u00e7\u00e3o \u00e9 de terceiros ou apesar de ser um desenvolvimento interno da empresa os prazos para altera\u00e7\u00e3o s\u00e3o muito longos. J\u00e1 faz algum tempo que modificar um plano de execu\u00e7\u00e3o sem alterar a instru\u00e7\u00e3o<\/p>\n","protected":false},"author":2,"featured_media":1688,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[152,156,115],"tags":[200,6,201,168,177,36,82,10,203,11,202,153,136,157,118],"class_list":["post-1690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql-patch","category-sql-plan-management","category-sql-profile","tag-advanced-query-rewrite","tag-cbo","tag-dbms_advanced_rewrite","tag-dbms_sqldiag","tag-dbms_sqldiag_internal","tag-execution-plan","tag-optimizer","tag-otimizador","tag-outline","tag-plano-de-execucao","tag-spm","tag-sql-patch","tag-sql-plan-baseline","tag-sql-plan-management","tag-sql-profile"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1690"}],"version-history":[{"count":44,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1690\/revisions"}],"predecessor-version":[{"id":2373,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1690\/revisions\/2373"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/1688"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1690"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}