{"id":1129,"date":"2017-09-12T14:48:02","date_gmt":"2017-09-12T17:48:02","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=1129"},"modified":"2019-11-11T18:50:15","modified_gmt":"2019-11-11T21:50:15","slug":"utilizar-hint-em-consulta-ajuda-ou-atrapalha","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/utilizar-hint-em-consulta-ajuda-ou-atrapalha\/","title":{"rendered":"Utilizar HINT em consulta ajuda ou atrapalha?"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Muitas aplica\u00e7\u00f5es antigas utilizam HINTs em suas consultas pois o otimizador do Oracle Database nas vers\u00f5es mais antigas possu\u00eda muitas limita\u00e7\u00f5es e para compensa-las os desenvolvedores ou DBAs utilizavam HINTs para obter um plano de execu\u00e7\u00e3o com melhor desempenho. Nas vers\u00f5es mais atuais do Oracle Database o Otimizador atingiu um n\u00edvel de excel\u00eancia muito significativo e essas consultas mais antigas que ainda utilizam HINTs podem atrapalhar o Otimizador na escolha do melhor plano de execu\u00e7\u00e3o. Neste artigo vamos ver como podemos desativar os HINTs de uma consulta utilizando o recurso SQL_PATCH e como incluir um HINT sem alterar a instru\u00e7\u00e3o SQL utilizando este mesmo recurso. \u00c9 importante frisar que para as vers\u00f5es mais atuais do Oracle Database uma boa pr\u00e1tica \u00e9 n\u00e3o utilizar HINTs em ambientes de produ\u00e7\u00e3o, em seu lugar podemos utilizar SQL PLAN MANAGEMENT.<\/span><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Neste artigo vamos fazer duas simula\u00e7\u00f5es:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\"><strong>1.<\/strong> Executar uma consulta com HINT que utiliza um determinado plano de execu\u00e7\u00e3o e com o recurso do SQL_PATCH fazer com que o Otimizador passe a ignorar o HINT e utilize outro plano de execu\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\"><strong>2.<\/strong> Executar uma consulta sem HINT que utiliza um determinado plano de execu\u00e7\u00e3o e incluir um HINT na consulta com recurso do SQL_PATCH de forma que o Otimizador construa um plano de execu\u00e7\u00e3o diferente levando em considera\u00e7\u00e3o o que o HINT determinou.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Utiliza\u00e7\u00e3o SQL_Patch para ignorar HINT<\/span><\/h2>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">1) Executando a consulta com HINT<\/span><\/h3>\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 \/><\/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 \/>\nSQL<span class=\"sy0\">&gt;<\/span> set tab off<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><span class=\"sy0\">;<\/span><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 \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET current_schema<span class=\"sy0\">=<\/span>SH<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/*+ FULL(co) *\/<\/span> <span class=\"coMULTI\">\/* dbtw01 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\n&nbsp; from countries co<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;customers cu<br \/>\n&nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID<br \/>\n&nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"nu0\">52787<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nCOUNTRY_ID CUST_FIRST_NAME &nbsp; &nbsp; &nbsp;CUST_CITY<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Arnold &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Augustus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertilde &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertram &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Beulah &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Ramkumar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Pablo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Joshua &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n<br \/>\n<span class=\"nu0\">75<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<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> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw01%'<\/span><br \/>\n&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 \/>\ncxz4qsrx1s7s7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;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&nbsp; old &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; 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><br \/>\n&nbsp; <span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cxz4qsrx1s7s7'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'typical 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;cxz4qsrx1s7s7<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/*+ FULL(co) *\/<\/span> <span class=\"coMULTI\">\/* dbtw01 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span><br \/>\ncu<span class=\"sy0\">.<\/span>CUST_CITY &nbsp; from countries co<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;customers cu &nbsp;where<br \/>\nco<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID &nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/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\">649886770<\/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; &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; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">408<\/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\">75<\/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\">02.33<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1464<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">713<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;NESTED LOOPS &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &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\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1890<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">408<\/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; <span class=\"nu0\">75<\/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\">02.33<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1464<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">713<\/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> COUNTRIES <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">3<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/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; &nbsp;<span class=\"nu0\">1<\/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.05<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> CUSTOMERS <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1540<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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\">02.28<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1461<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">711<\/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=\"st0\">&quot;CO&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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=\"st0\">&quot;CU&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">23<\/span> rows selected<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;\">Na log de execu\u00e7\u00e3o acima podemos observar que o plano de execu\u00e7\u00e3o faz um JOIN das duas tabelas com NESTED LOOPS e a tabela COUNTRIES \u00e9 lida com uma opera\u00e7\u00e3o TABLE ACCESS FULL.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">2) Criando SQL_PATCH para ignorar HINTS<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para utilizar a pacote DBMS_SQLDIAG_INTERNAL precisamos estar conectados com usu\u00e1rio SYS ou um usu\u00e1rio que tenha o privil\u00e9gio de EXECUTE neste pacote, com ele podemos criar um SQL_PATCH para ignorar os HINTs que estejam codificados na instru\u00e7\u00e3o SQL.<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<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> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw01%'<\/span><br \/>\n&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 \/>\ncxz4qsrx1s7s7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<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> &nbsp; &nbsp;<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 \/>\nold &nbsp; <span class=\"nu0\">6<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp;where sql_id <span class=\"sy0\">=<\/span> <span class=\"st_h\">'&amp;m_sql_id'<\/span><br \/>\n<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">6<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp;where sql_id <span class=\"sy0\">=<\/span> <span class=\"st_h\">'cxz4qsrx1s7s7'<\/span><br \/>\nold &nbsp; <span class=\"nu0\">7<\/span><span class=\"sy0\">:<\/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<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">7<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp; &nbsp;and child_number <span class=\"sy0\">=<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> <span class=\"sy0\">;<\/span><br \/>\nold &nbsp;<span class=\"nu0\">12<\/span><span class=\"sy0\">:<\/span> &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<span class=\"kw2\">new<\/span> &nbsp;<span class=\"nu0\">12<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'Patch_cxz4qsrx1s7s7'<\/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><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;CREATED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &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_cxz4qsrx1s7s7 &nbsp; <span class=\"nu19\">08<\/span><span class=\"sy0\">-<\/span>SEP<span class=\"sy0\">-<\/span><span class=\"nu0\">17<\/span> 09<span class=\"sy0\">.<\/span>58<span class=\"sy0\">.<\/span>53<span class=\"sy0\">.<\/span>000000 PM &nbsp; &nbsp; select <span class=\"coMULTI\">\/*+ FULL(co) *\/<\/span> <span class=\"coMULTI\">\/* dbtw01 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_C<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">3) Executando a consulta com HINT novamente<\/span><\/h3>\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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/*+ FULL(co) *\/<\/span> <span class=\"coMULTI\">\/* dbtw01 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\n&nbsp; from countries co<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;customers cu<br \/>\n&nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID<br \/>\n&nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"nu0\">52787<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nCOUNTRY_ID CUST_FIRST_NAME &nbsp; &nbsp; &nbsp;CUST_CITY<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Arnold &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Augustus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertilde &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertram &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Beulah &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Ramkumar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Pablo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Joshua &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n<br \/>\n<span class=\"nu0\">75<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<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; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw01%'<\/span><br \/>\n&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 \/>\ncxz4qsrx1s7s7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;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&nbsp; old &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; 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><br \/>\n&nbsp; <span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cxz4qsrx1s7s7'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'typical 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;cxz4qsrx1s7s7<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/*+ FULL(co) *\/<\/span> <span class=\"coMULTI\">\/* dbtw01 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span><br \/>\ncu<span class=\"sy0\">.<\/span>CUST_CITY &nbsp; from countries co<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;customers cu &nbsp;where<br \/>\nco<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID &nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/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\">763797669<\/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; &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; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">405<\/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\">75<\/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\">06.90<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1462<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1454<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;NESTED LOOPS &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &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\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1890<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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\">06.90<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1462<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1454<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; INDEX UNIQUE SCAN<span class=\"sy0\">|<\/span> COUNTRIES_PK <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">0<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> CUSTOMERS &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1540<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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\">06.89<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1461<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1453<\/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> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CO&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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=\"st0\">&quot;CU&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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_cxz4qsrx1s7s7&quot;<\/span> used <span class=\"kw1\">for<\/span> this statement<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">27<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> BEGIN<br \/>\n&nbsp; 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_cxz4qsrx1s7s7'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n<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;\">Observando a log de execu\u00e7\u00e3o acima podemos constatar que o plano de execu\u00e7\u00e3o esta diferente, o Otimizador ignorou o HINT que pedia para acessar a tabela COUNTRIES com uma opera\u00e7\u00e3o TABLE ACCESS FULL e utilizou o indice COUNTRIES_PK para acessar esta tabela, tamb\u00e9m podemos observar na se\u00e7\u00e3o NOTE que um SQL_PATCH foi utilizado (SQL patch &#8220;Patch_cxz4qsrx1s7s7&#8221; used for this statement).<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Utiliza\u00e7\u00e3o SQL Patch para incluir um HINT<\/span><\/h2>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">1) Executando a consulta sem HINT<\/span><\/h3>\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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> set tab off<span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><span class=\"sy0\">;<\/span><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 \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> ALTER SESSION SET current_schema<span class=\"sy0\">=<\/span>SH<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* dbtw02 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\n&nbsp; from countries co<span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;customers cu<br \/>\n&nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID<br \/>\n&nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"nu0\">52787<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nCOUNTRY_ID CUST_FIRST_NAME &nbsp; &nbsp; &nbsp;CUST_CITY<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Arnold &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Augustus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertilde &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertram &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Beulah &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Ramkumar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Pablo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Joshua &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n<br \/>\n<span class=\"nu0\">75<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<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; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw02%'<\/span><br \/>\n&nbsp; &nbsp;AND sql_text NOT LIKE <span class=\"st_h\">'%v$sql%'<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;<span class=\"nu0\">3<\/span> &nbsp; &nbsp;<span class=\"nu0\">4<\/span><br \/>\nSQL_ID &nbsp; &nbsp; &nbsp; &nbsp;CHILD_NUMBER<br \/>\n<span class=\"sy0\">-------------<\/span> <span class=\"sy0\">------------<\/span><br \/>\n74y93xtd4b242 &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> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;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&nbsp; old &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; 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><br \/>\n&nbsp; <span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'74y93xtd4b242'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'typical 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;74y93xtd4b242<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* dbtw02 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\nfrom countries co<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;customers cu &nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span><br \/>\ncu<span class=\"sy0\">.<\/span>COUNTRY_ID &nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/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\">763797669<\/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; &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; &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\">405<\/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\">75<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1462<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;NESTED LOOPS &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &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\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1890<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1462<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; INDEX UNIQUE SCAN<span class=\"sy0\">|<\/span> COUNTRIES_PK <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">0<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> CUSTOMERS &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1540<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1461<\/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> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CO&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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=\"st0\">&quot;CU&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">23<\/span> rows selected<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;\">Na log de execu\u00e7\u00e3o acima podemos observar que o plano de execu\u00e7\u00e3o n\u00e3o utiliza HINT e faz um JOIN das duas tabelas com NESTED LOOPS, a tabela COUNTRIES \u00e9 lida utilizando o indice COUNTRIES_PK.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">2) Criando SQL_PATCH para adicionar um HINT<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Utilizando a pacote DBMS_SQLDIAG_INTERNAL, procedure I_CREATE_PATCH, vamos criar um SQL_PATCH incluindo o HINT [FULL(@&#8221;SEL$1&#8243; &#8220;CO&#8221;@&#8221;SEL$1&#8221;] no par\u00e2metro HINT_TEXT, este HINT pede para o Otimizador utilizar a opera\u00e7\u00e3o TABLE FULL SCAN para leitura da tabela COUNTRIES.<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<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; FROM v<span class=\"re0\">$sql<\/span><br \/>\n&nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw02%'<\/span><br \/>\n&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 \/>\n74y93xtd4b242 &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> 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;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\">'FULL(@&quot;SEL$1&quot; &quot;CO&quot;@&quot;SEL$1&quot;)'<\/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> <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> <span class=\"sy0\">\/<\/span><br \/>\nold &nbsp; <span class=\"nu0\">6<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp;where sql_id <span class=\"sy0\">=<\/span> <span class=\"st_h\">'&amp;m_sql_id'<\/span><br \/>\n<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">6<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp;where sql_id <span class=\"sy0\">=<\/span> <span class=\"st_h\">'74y93xtd4b242'<\/span><br \/>\nold &nbsp; <span class=\"nu0\">7<\/span><span class=\"sy0\">:<\/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<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">7<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp; &nbsp;and child_number <span class=\"sy0\">=<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> <span class=\"sy0\">;<\/span><br \/>\nold &nbsp;<span class=\"nu0\">12<\/span><span class=\"sy0\">:<\/span> &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<span class=\"kw2\">new<\/span> &nbsp;<span class=\"nu0\">12<\/span><span class=\"sy0\">:<\/span> &nbsp; &nbsp; &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'Patch_74y93xtd4b242'<\/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><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;CREATED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &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_74y93xtd4b242 &nbsp; <span class=\"nu19\">08<\/span><span class=\"sy0\">-<\/span>SEP<span class=\"sy0\">-<\/span><span class=\"nu0\">17<\/span> 10<span class=\"sy0\">.<\/span>22<span class=\"sy0\">.<\/span>46<span class=\"sy0\">.<\/span>000000 PM &nbsp; &nbsp;select <span class=\"coMULTI\">\/* dbtw02 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<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; &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;from <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><br \/>\n<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-size: 12pt;\">3) Executando a consulta sem HINT novamente<\/span><\/h3>\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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL<span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* dbtw02 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp; from countries co<span class=\"sy0\">,<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp; &nbsp; &nbsp; &nbsp;customers cu<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> cu<span class=\"sy0\">.<\/span>COUNTRY_ID<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"nu0\">52787<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nCOUNTRY_ID CUST_FIRST_NAME &nbsp; &nbsp; &nbsp;CUST_CITY<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Arnold &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Augustus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertilde &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Bertram &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Beulah &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp;<span class=\"sy0\">..<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Ramkumar &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Pablo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Riyadh<br \/>\n&nbsp; &nbsp; &nbsp;<span class=\"nu0\">52787<\/span> Joshua &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Riyadh<br \/>\n<br \/>\n<span class=\"nu0\">75<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SQL<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 \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp; FROM v<span class=\"re0\">$sql<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp;WHERE sql_text LIKE <span class=\"st_h\">'%dbtw02%'<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/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 \/>\n74y93xtd4b242 &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> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;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&nbsp; old &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; 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><br \/>\n&nbsp; <span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'74y93xtd4b242'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'typical 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;74y93xtd4b242<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* dbtw02 *\/<\/span> co<span class=\"sy0\">.<\/span>COUNTRY_ID<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_FIRST_NAME<span class=\"sy0\">,<\/span> cu<span class=\"sy0\">.<\/span>CUST_CITY<br \/>\nfrom countries co<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;customers cu &nbsp;where co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span><br \/>\ncu<span class=\"sy0\">.<\/span>COUNTRY_ID &nbsp; &nbsp;and co<span class=\"sy0\">.<\/span>COUNTRY_ID <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/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\">649886770<\/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; &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; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">408<\/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\">75<\/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.03<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1464<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;NESTED LOOPS &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &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\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1890<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">408<\/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; <span class=\"nu0\">75<\/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.03<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1464<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">2<\/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> COUNTRIES <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">3<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/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; &nbsp;<span class=\"nu0\">1<\/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.02<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> CUSTOMERS <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">1540<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">405<\/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; <span class=\"nu0\">75<\/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.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">1461<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/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=\"st0\">&quot;CO&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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=\"st0\">&quot;CU&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COUNTRY_ID&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_0<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_74y93xtd4b242&quot;<\/span> used <span class=\"kw1\">for<\/span> this statement<br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">27<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> BEGIN<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> &nbsp; &nbsp;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_74y93xtd4b242'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/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;\">Observando a log de execu\u00e7\u00e3o acima podemos verificar que o plano de execu\u00e7\u00e3o esta diferente, a tabela COUNTRIES foi acessada com uma opera\u00e7\u00e3o TABLE FULL SCAN, tamb\u00e9m podemos observar na se\u00e7\u00e3o NOTE que um SQL_PATCH foi utilizado (SQL patch &#8220;Patch_74y93xtd4b242&#8221; used for this statement)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">Refer\u00eancias:<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p><strong><a href=\"https:\/\/orastory.wordpress.com\/2012\/03\/06\/sql-patch-ii\/\" target=\"_blank\">https:\/\/orastory.wordpress.com\/2012\/03\/06\/sql-patch-ii\/<\/a><\/strong><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<br \/>\n<a href=\"http:\/\/dbtimewizard.com.br\/treinamento\/\" target=\"_blank\"><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\"><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;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muitas aplica\u00e7\u00f5es antigas utilizam HINTs em suas consultas pois o otimizador do Oracle Database nas vers\u00f5es mais antigas possu\u00eda muitas limita\u00e7\u00f5es e para compensa-las os desenvolvedores ou DBAs utilizavam HINTs para obter um plano de execu\u00e7\u00e3o com melhor desempenho. Nas vers\u00f5es mais atuais do Oracle Database o Otimizador atingiu um n\u00edvel de excel\u00eancia muito significativo e essas consultas mais antigas<\/p>\n","protected":false},"author":2,"featured_media":1128,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[152],"tags":[177,7,176,153],"class_list":["post-1129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql-patch","tag-dbms_sqldiag_internal","tag-dbms_xplan","tag-hint","tag-sql-patch"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1129","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=1129"}],"version-history":[{"count":14,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1129\/revisions"}],"predecessor-version":[{"id":2082,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1129\/revisions\/2082"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/1128"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1129"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}