{"id":1984,"date":"2019-04-07T22:49:23","date_gmt":"2019-04-08T01:49:23","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=1984"},"modified":"2019-11-11T18:32:19","modified_gmt":"2019-11-11T21:32:19","slug":"anabolizante-para-o-otimizador","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/anabolizante-para-o-otimizador\/","title":{"rendered":"Anabolizante para o Otimizador"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">O Otimizador do Oracle cria planos de execu\u00e7\u00e3o com alta performance baseado nas estat\u00edsticas dos objetos no banco de dados, com estas informa\u00e7\u00f5es ele consegue fazer estimativas de acesso para cada uma das opera\u00e7\u00f5es do plano de execu\u00e7\u00e3o e a qualidade destas estimativas \u00e9 que determina o desempenho das instru\u00e7\u00f5es SQL. O padr\u00e3o de coleta de estat\u00edsticas \u00e9 baseado em cada coluna de uma tabela, este padr\u00e3o atende bem a necessidade do Otimizador quando ele cria um plano de execu\u00e7\u00e3o de uma instru\u00e7\u00e3o SQL cujo filtro na cl\u00e1usula WHERE \u00e9 composto de apenas uma coluna da tabela, porem quando a consulta possui duas ou mais colunas da tabela no filtro da cl\u00e1usula WHERE as estat\u00edsticas individuais de colunas da tabela n\u00e3o garantem uma precis\u00e3o adequada no c\u00e1lculo da <a href=\"http:\/\/dbtimewizard.com.br\/blog\/qual-a-importancia-das-estatisticas-de-colunas-para-o-otimizador\/\" target=\"_blank\"><strong>CARDINALIDADE<\/strong><\/a> da opera\u00e7\u00e3o e pode levar o Otimizador a montar uma plano de execu\u00e7\u00e3o cujo desempenho fique abaixo do esperado. O banco de dados Oracle permite a utiliza\u00e7\u00e3o de um processo anabolizante que vai melhorar a qualidade das estat\u00edsticas e ampliar a precis\u00e3o do Otimizador na estimativa da CARDINALIDADE das opera\u00e7\u00f5es no plano de execu\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Neste artigo vamos mostrar um exemplo pr\u00e1tico de um processo que permite a cria\u00e7\u00e3o de <a href=\"http:\/\/dbtimewizard.com.br\/blog\/o-que-voce-ainda-nao-sabe-sobre-exclusao-de-indices\/\" target=\"_blank\"><strong>ESTAT\u00cdSTICAS ESTENDIDAS<\/strong><\/a> no atacado, ou seja, o Oracle vai monitorar as instru\u00e7\u00f5es SQL executadas num determinado per\u00edodo e baseado nos filtros utilizados na cl\u00e1usula WHERE destas instru\u00e7\u00f5es ele vai criar todas as ESTAT\u00cdSTICAS ESTENDIDAS necess\u00e1rias para melhorar a estimativa de CARDINALIDADE da opera\u00e7\u00f5es realizadas pelo Otimizador.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para realizar a simula\u00e7\u00e3o do processo de coleta de estat\u00edsticas para grupos de colunas vamos executar as seguintes etapas:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\"><strong>1) Criar as tabelas e \u00edndices para a simula\u00e7\u00e3o<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>2) Executar a consulta sem a estat\u00edstica de grupo de colunas<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>3) Ativar monitora\u00e7\u00e3o de grupo de colunas utilizadas como filtro<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>4) Executar consulta que utiliza grupo de colunas como filtro<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>5) Gerar relat\u00f3rio para verificar os grupos de colunas identificados<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>6) Criar as estat\u00edsticas dos grupos de colunas identificados<\/strong><\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>7) Executar a consulta novamente para verificar a melhoria no plano de execu\u00e7\u00e3o<\/strong><\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1) Criar as tabelas e \u00edndices para a simula\u00e7\u00e3o<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos criar os objetos necess\u00e1rios para realizar a nossa simula\u00e7\u00e3o e coletar as estat\u00edsticas destes objetos.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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 \/><\/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> DROP TABLE tab01 purge<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela eliminada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> DROP TABLE tab02 purge<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela eliminada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> DROP TABLE tab03 purge<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela eliminada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> CREATE TABLE tab01<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;<span class=\"kw1\">AS<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;SELECT rownum col01<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span> &nbsp;<span class=\"nu0\">20<\/span><span class=\"br0\">&#41;<\/span> col02<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span> <span class=\"nu0\">200<\/span><span class=\"br0\">&#41;<\/span> col03<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span><span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span> col04<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp;lpad<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'x'<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'x'<\/span><span class=\"br0\">&#41;<\/span> col05<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;FROM dual<br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;CONNECT BY level <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">10000<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp;<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 TABLE tab02<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;<span class=\"kw1\">AS<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;SELECT rownum col01<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span> &nbsp;<span class=\"nu0\">20<\/span><span class=\"br0\">&#41;<\/span> col02<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span> <span class=\"nu0\">200<\/span><span class=\"br0\">&#41;<\/span> col03<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp;MOD<span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">,<\/span><span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span> col04<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp;lpad<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'y'<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'y'<\/span><span class=\"br0\">&#41;<\/span> col05<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;FROM dual<br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;CONNECT BY level <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">10<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp;<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 TABLE tab03<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;<span class=\"kw1\">AS<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;SELECT rownum col01<span class=\"sy0\">,<\/span> lpad<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'z'<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'z'<\/span><span class=\"br0\">&#41;<\/span> col02<br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp;FROM dual<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp;CONNECT BY level <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">10000<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp;<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> <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>USER<span class=\"sy0\">,<\/span><span class=\"st_h\">'tab01'<\/span><span class=\"sy0\">,<\/span>method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'for all columns size auto'<\/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> <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>USER<span class=\"sy0\">,<\/span><span class=\"st_h\">'tab02'<\/span><span class=\"sy0\">,<\/span>method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'for all columns size auto'<\/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> <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>USER<span class=\"sy0\">,<\/span><span class=\"st_h\">'tab03'<\/span><span class=\"sy0\">,<\/span>method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'for all columns size auto'<\/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><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER TABLE tab01 ADD CONSTRAINT tab01col01 PRIMARY <a href=\"http:\/\/www.php.net\/key\"><span class=\"kw3\">KEY<\/span><\/a><span class=\"br0\">&#40;<\/span>col01<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER TABLE tab02 ADD CONSTRAINT tab02col01 PRIMARY <a href=\"http:\/\/www.php.net\/key\"><span class=\"kw3\">KEY<\/span><\/a><span class=\"br0\">&#40;<\/span>col01<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> ALTER TABLE tab03 ADD CONSTRAINT tab03col01 PRIMARY <a href=\"http:\/\/www.php.net\/key\"><span class=\"kw3\">KEY<\/span><\/a><span class=\"br0\">&#40;<\/span>col01<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela alterada<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;\">2) Executar a consulta sem a estat\u00edstica de grupo de colunas<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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> 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> WITH visao <span class=\"kw1\">AS<\/span> <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;SELECT t1<span class=\"sy0\">.<\/span>col05 v1<span class=\"sy0\">,<\/span>t2<span class=\"sy0\">.<\/span>col05 v2<span class=\"sy0\">,<\/span>t3<span class=\"sy0\">.<\/span>col02 v3<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp;FROM tab01 t1<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab02 t2<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab03 t3<br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; WHERE t1<span class=\"sy0\">.<\/span>col02 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col02<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col03 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col03<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col01 <span class=\"sy0\">=<\/span> t3<span class=\"sy0\">.<\/span>col01<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;select <span class=\"coMULTI\">\/* DBTW059.1 *\/<\/span> &nbsp;<span class=\"sy0\">*<\/span> from visao where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">51<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nV1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V3<br \/>\n<span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\n&nbsp; <span class=\"sy0\">.<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n<br \/>\n<span class=\"nu0\">50<\/span> linhas selecionadas<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> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<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\">'%DBTW059.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 \/>\n2kvfq9y3nw9hf &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 relat\u00f3rio <span class=\"kw1\">do<\/span> plano de execu\u00e7\u00e3o da consulta<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;2kvfq9y3nw9hf<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nWITH visao <span class=\"kw1\">AS<\/span> <span class=\"br0\">&#40;<\/span> SELECT t1<span class=\"sy0\">.<\/span>col05 v1<span class=\"sy0\">,<\/span>t2<span class=\"sy0\">.<\/span>col05 v2<span class=\"sy0\">,<\/span>t3<span class=\"sy0\">.<\/span>col02 v3 &nbsp; FROM tab01<br \/>\nt1<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;tab02 t2<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;tab03 t3 &nbsp;WHERE t1<span class=\"sy0\">.<\/span>col02 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col02 &nbsp; &nbsp;AND<br \/>\nt1<span class=\"sy0\">.<\/span>col03 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col03 &nbsp; &nbsp;AND t1<span class=\"sy0\">.<\/span>col01 <span class=\"sy0\">=<\/span> t3<span class=\"sy0\">.<\/span>col01<span class=\"br0\">&#41;<\/span> select <span class=\"coMULTI\">\/* DBTW059.1 *\/<\/span><br \/>\n<span class=\"sy0\">*<\/span> from visao where rownum <span class=\"sy0\">&lt;<\/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\">328153508<\/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;<span class=\"sy0\">|<\/span> Name &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; <span class=\"sy0\">|<\/span> &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;<span class=\"nu0\">11<\/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\">50<\/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\">101<\/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\/count\"><span class=\"kw3\">COUNT<\/span><\/a> STOPKEY &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">50<\/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\">101<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">25<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">3600<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">11<\/span> &nbsp;<span class=\"br0\">&#40;<\/span><span class=\"nu0\">10<\/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\">50<\/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\">101<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">25<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">2475<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">6<\/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;<span class=\"nu0\">500<\/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\">89<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> TAB02 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">10<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">470<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">2<\/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; <span class=\"nu0\">10<\/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\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> TAB01 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">10000<\/span> <span class=\"sy0\">|<\/span> &nbsp; 507K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">4<\/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;<span class=\"nu0\">10000<\/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\">87<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">6<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;TABLE ACCESS FULL <span class=\"sy0\">|<\/span> TAB03 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">10000<\/span> <span class=\"sy0\">|<\/span> &nbsp; 439K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">4<\/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;<span class=\"nu0\">810<\/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\">12<\/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\">1<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span>ROWNUM<span class=\"sy0\">&lt;:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL01&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T3&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL01&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL02&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T2&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL02&quot;<\/span> AND <span class=\"st0\">&quot;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL03&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T2&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL03&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">28<\/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;\">Observe no plano de execu\u00e7\u00e3o acima que na opera\u00e7\u00e3o de ID=3 (HASH JOIN) o Otimizador estimou que seriam selecionadas 25 linhas na tabela quando na verdade foram lidas 500 linhas, uma diferen\u00e7a muito significativa que pode levar o Otimizador a escolher uma plano de execu\u00e7\u00e3o inadequado.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">3) Ativar monitora\u00e7\u00e3o de grupo de colunas utilizadas como filtro<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> conn sys<span class=\"sy0\">\/<\/span>password<span class=\"sy0\">@<\/span>lab01 <span class=\"kw1\">as<\/span> sysdba<span class=\"sy0\">;<\/span><br \/>\nConnected<span class=\"sy0\">.<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> grant ANALYZE ANY to curso03<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nConcess\u00e3o bem<span class=\"sy0\">-<\/span>sucedida<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> grant ANALYZE ANY DICTIONARY to curso03<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nConcess\u00e3o bem<span class=\"sy0\">-<\/span>sucedida<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> conn curso03<span class=\"sy0\">\/<\/span>curso03<span class=\"sy0\">@<\/span>lab01<span class=\"sy0\">;<\/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>seed_col_usage<span class=\"br0\">&#40;<\/span><span class=\"kw4\">NULL<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">NULL<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">180<\/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<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para executar a procedure SEED_COL_USAGE o usu\u00e1rio precisa ter os privil\u00e9gios ANALYZE ANY e ANALYZE ANY DICTIONARY, os dois primeiros par\u00e2metros passados para a procedure s\u00e3o utilizados quando criamos um SQLSET, na nossa simula\u00e7\u00e3o vamos deixar estes par\u00e2metros como NULL e informar somente o terceiro par\u00e2metro que representa o numero de segundos durante os quais o banco vai monitorar a utiliza\u00e7\u00e3o de grupos de colunas das instru\u00e7\u00f5es SQL.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">4) Executar consulta que utiliza grupo de colunas como filtro<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Ativada a monitora\u00e7\u00e3o, nos pr\u00f3ximos 180 segundos todas as instru\u00e7\u00f5es que forem executadas no banco ser\u00e3o examinadas quanto a utiliza\u00e7\u00e3o de grupos de colunas de uma mesma tabela sendo utilizadas no filtro da cl\u00e1usula WHERE. Na nossa simula\u00e7\u00e3o vamos executar a mesma consulta da etapa 2.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> WITH visao <span class=\"kw1\">AS<\/span> <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;SELECT t1<span class=\"sy0\">.<\/span>col05 v1<span class=\"sy0\">,<\/span>t2<span class=\"sy0\">.<\/span>col05 v2<span class=\"sy0\">,<\/span>t3<span class=\"sy0\">.<\/span>col02 v3<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp;FROM tab01 t1<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab02 t2<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab03 t3<br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; WHERE t1<span class=\"sy0\">.<\/span>col02 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col02<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col03 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col03<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col01 <span class=\"sy0\">=<\/span> t3<span class=\"sy0\">.<\/span>col01<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;select <span class=\"coMULTI\">\/* DBTW059.2 *\/<\/span> &nbsp;<span class=\"sy0\">*<\/span> from visao where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">51<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nV1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V3<br \/>\n<span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n<br \/>\n<span class=\"nu0\">50<\/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 style=\"text-align: left;\"><span style=\"font-size: 14pt;\">5) Gerar relat\u00f3rio para verificar os grupos de colunas identificados<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A procedure REPORT_COL_USAGE do pacote DBMS_STATS gera um relat\u00f3rio contendo todos os grupos de colunas utilizados no filtro da cl\u00e1usula WHERE das instru\u00e7\u00f5es SQL executadas durante o per\u00edodo de monitora\u00e7\u00e3o que iniciamos na etapa anterior, esta procedure possui dois par\u00e2metros, o primeiro \u00e9 o SCHEMA da tabela e o segundo o nome da tabela, deixando o segundo par\u00e2metro como NULL ser\u00e1 gerado um relat\u00f3rio para todas as tabelas do SCHEMA.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> SET LONG <span class=\"nu0\">100000<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SET LINES <span class=\"nu0\">120<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SET PAGES <span class=\"nu0\">50<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT DBMS_STATS<span class=\"sy0\">.<\/span>report_col_usage<span class=\"br0\">&#40;<\/span>USER<span class=\"sy0\">,<\/span> <span class=\"kw4\">NULL<\/span><span class=\"br0\">&#41;<\/span> FROM &nbsp; dual<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nDBMS_STATS<span class=\"sy0\">.<\/span>REPORT_COL_USAGE<span class=\"br0\">&#40;<\/span>USER<span class=\"sy0\">,<\/span><span class=\"kw4\">NULL<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\nLEGEND<span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">.......<\/span><br \/>\n<br \/>\nEQ &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> Used in single table EQuality predicate<br \/>\n<a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> &nbsp; &nbsp; &nbsp;<span class=\"sy0\">:<\/span> Used in single table <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> predicate<br \/>\nLIKE &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> Used in single table LIKE predicate<br \/>\n<span class=\"kw4\">NULL<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> Used in single table is <span class=\"br0\">&#40;<\/span>not<span class=\"br0\">&#41;<\/span> <span class=\"kw4\">NULL<\/span> predicate<br \/>\nEQ_JOIN &nbsp; &nbsp;<span class=\"sy0\">:<\/span> Used in EQuality <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> predicate<br \/>\nNONEQ_JOIN <span class=\"sy0\">:<\/span> Used in NON EQuality <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> predicate<br \/>\nFILTER &nbsp; &nbsp; <span class=\"sy0\">:<\/span> Used in single table FILTER predicate<br \/>\n<a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> Used in <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> predicate<br \/>\nGROUP_BY &nbsp; <span class=\"sy0\">:<\/span> Used in GROUP BY expression<br \/>\n<span class=\"sy0\">...............................................................................<\/span><br \/>\n<br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\nCOLUMN USAGE REPORT <span class=\"kw1\">FOR<\/span> CURSO03<span class=\"sy0\">.<\/span>TAB01<br \/>\n<span class=\"sy0\">.....................................<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> COL01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"nu0\">2<\/span><span class=\"sy0\">.<\/span> COL02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"nu0\">3<\/span><span class=\"sy0\">.<\/span> COL03 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"nu0\">4<\/span><span class=\"sy0\">.<\/span> <span class=\"br0\">&#40;<\/span>COL02<span class=\"sy0\">,<\/span> COL03<span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">:<\/span> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\nCOLUMN USAGE REPORT <span class=\"kw1\">FOR<\/span> CURSO03<span class=\"sy0\">.<\/span>TAB02<br \/>\n<span class=\"sy0\">.....................................<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> COL02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"nu0\">2<\/span><span class=\"sy0\">.<\/span> COL03 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"nu0\">3<\/span><span class=\"sy0\">.<\/span> <span class=\"br0\">&#40;<\/span>COL02<span class=\"sy0\">,<\/span> COL03<span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">:<\/span> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\nCOLUMN USAGE REPORT <span class=\"kw1\">FOR<\/span> CURSO03<span class=\"sy0\">.<\/span>TAB03<br \/>\n<span class=\"sy0\">.....................................<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> COL01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">:<\/span> EQ_JOIN<br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\n<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;\">6) Criar as estat\u00edsticas dos grupos de colunas identificados<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A procedure CREATE_EXTENDED_STATS do pacote DBMS_STATS cria as estat\u00edsticas estendidas para os grupos de colunas identificados na etapa 4, esta procedure possui dois par\u00e2metros, o primeiro \u00e9 o SCHEMA da tabela e o segundo o nome da tabela, deixando o segundo par\u00e2metro como NULL ser\u00e3o criadas todas as estat\u00edsticas estendidas para todas as tabelas do SCHEMA. Alem da cria\u00e7\u00e3o das estat\u00edsticas estendidas \u00e9 necess\u00e1rio coleta-las manualmente pois o processo de coleta de estat\u00edsticas n\u00e3o \u00e9 din\u00e2mico, ele ocorre normalmente de forma programada no per\u00edodo da noite.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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> SELECT DBMS_STATS<span class=\"sy0\">.<\/span>create_extended_stats<span class=\"br0\">&#40;<\/span>USER<span class=\"sy0\">,<\/span> <span class=\"kw4\">NULL<\/span><span class=\"br0\">&#41;<\/span> FROM &nbsp; dual<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nDBMS_STATS<span class=\"sy0\">.<\/span>CREATE_EXTENDED_STATS<span class=\"br0\">&#40;<\/span>USER<span class=\"sy0\">,<\/span><span class=\"kw4\">NULL<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\nEXTENSIONS <span class=\"kw1\">FOR<\/span> CURSO03<span class=\"sy0\">.<\/span>TAB01<br \/>\n<span class=\"sy0\">............................<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> <span class=\"br0\">&#40;<\/span>COL02<span class=\"sy0\">,<\/span> COL03<span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">:<\/span> SYS_STU<span class=\"co2\">#0G3WGNECOTHXW8K0TKS02G created<br \/>\n<\/span><span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\n<span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\nEXTENSIONS <span class=\"kw1\">FOR<\/span> CURSO03<span class=\"sy0\">.<\/span>TAB02<br \/>\n<span class=\"sy0\">............................<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span><span class=\"sy0\">.<\/span> <span class=\"br0\">&#40;<\/span>COL02<span class=\"sy0\">,<\/span> COL03<span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">:<\/span> SYS_STU<span class=\"co2\">#0G3WGNECOTHXW8K0TKS02G created<br \/>\n<\/span><span class=\"co2\">###############################################################################<br \/>\n<\/span><br \/>\n<br \/>\n<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_schema_stats<span class=\"br0\">&#40;<\/span>USER<span class=\"sy0\">,<\/span> method_opt <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'for all columns size auto'<\/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> <br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT table_name<span class=\"sy0\">,<\/span> column_name<span class=\"sy0\">,<\/span> num_distinct<span class=\"sy0\">,<\/span> density<span class=\"sy0\">,<\/span> num_nulls<span class=\"sy0\">,<\/span> histogram<span class=\"sy0\">,<\/span> num_buckets<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM user_tab_col_statistics<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE table_name in <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'TAB01'<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'TAB02'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTABLE_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; COLUMN_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NUM_DISTINCT &nbsp; &nbsp;DENSITY &nbsp;NUM_NULLS HISTOGRAM &nbsp; &nbsp; &nbsp; NUM_BUCKETS<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------<\/span> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">---------------<\/span> <span class=\"sy0\">-----------<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">10000<\/span> &nbsp; &nbsp; &nbsp;<span class=\"sy0\">,<\/span><span class=\"nu8\">0001<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span> &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu8\">00005<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> FREQUENCY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL03 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">200<\/span> &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu8\">00005<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> FREQUENCY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">200<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL04 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1000<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu8\">001<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL05 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SYS_STU<span class=\"co2\">#0G3WGNECOTHXW8K0TKS02G &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;200 &nbsp; &nbsp; &nbsp; ,005 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br \/>\n<\/span>TAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL03 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL04 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;COL05 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span><br \/>\nTAB02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SYS_STU<span class=\"co2\">#0G3WGNECOTHXW8K0TKS02G &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10 &nbsp; &nbsp; &nbsp; &nbsp; ,1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br \/>\n<\/span><br \/>\n<span class=\"nu0\">12<\/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 style=\"text-align: left;\"><span style=\"font-size: 14pt;\">7) Executar a consulta novamente para verificar a melhoria no plano de execu\u00e7\u00e3o<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;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> 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> WITH visao <span class=\"kw1\">AS<\/span> <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;SELECT t1<span class=\"sy0\">.<\/span>col05 v1<span class=\"sy0\">,<\/span>t2<span class=\"sy0\">.<\/span>col05 v2<span class=\"sy0\">,<\/span>t3<span class=\"sy0\">.<\/span>col02 v3<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp;FROM tab01 t1<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab02 t2<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; tab03 t3<br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; WHERE t1<span class=\"sy0\">.<\/span>col02 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col02<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col03 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col03<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; AND t1<span class=\"sy0\">.<\/span>col01 <span class=\"sy0\">=<\/span> t3<span class=\"sy0\">.<\/span>col01<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;select <span class=\"coMULTI\">\/* DBTW059.3 *\/<\/span> &nbsp;<span class=\"sy0\">*<\/span> from visao where rownum <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">51<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nV1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V3<br \/>\n<span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span> <span class=\"sy0\">----------------------------------------<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">.<\/span><br \/>\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz<br \/>\n<br \/>\n<span class=\"nu0\">50<\/span> linhas selecionadas<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> Recupera o SQL_ID e o CHILD_NUMBER &nbsp;da consulta executada<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\">'%DBTW059.3%'<\/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 \/>\n0d2k76dcn6sf8 &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 relat\u00f3rio <span class=\"kw1\">do<\/span> plano de execu\u00e7\u00e3o da consulta<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;0d2k76dcn6sf8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nWITH visao <span class=\"kw1\">AS<\/span> <span class=\"br0\">&#40;<\/span> SELECT t1<span class=\"sy0\">.<\/span>col05 v1<span class=\"sy0\">,<\/span>t2<span class=\"sy0\">.<\/span>col05 v2<span class=\"sy0\">,<\/span>t3<span class=\"sy0\">.<\/span>col02 v3 &nbsp; FROM tab01<br \/>\nt1<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;tab02 t2<span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp;tab03 t3 &nbsp;WHERE t1<span class=\"sy0\">.<\/span>col02 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col02 &nbsp; &nbsp;AND<br \/>\nt1<span class=\"sy0\">.<\/span>col03 <span class=\"sy0\">=<\/span> t2<span class=\"sy0\">.<\/span>col03 &nbsp; &nbsp;AND t1<span class=\"sy0\">.<\/span>col01 <span class=\"sy0\">=<\/span> t3<span class=\"sy0\">.<\/span>col01<span class=\"br0\">&#41;<\/span> select <span class=\"coMULTI\">\/* DBTW059.3 *\/<\/span><br \/>\n<span class=\"sy0\">*<\/span> from visao where rownum <span class=\"sy0\">&lt;<\/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\">732749324<\/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;<span class=\"sy0\">|<\/span> Name &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; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">8<\/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\">50<\/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\">87<\/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\/count\"><span class=\"kw3\">COUNT<\/span><\/a> STOPKEY &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &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; <span class=\"nu0\">50<\/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\">87<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; <a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">50<\/span> <span class=\"sy0\">|<\/span> <span class=\"nu0\">14650<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">8<\/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; <span class=\"nu0\">50<\/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\">87<\/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> TAB02 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">10<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">470<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">2<\/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; <span class=\"nu0\">10<\/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\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/hash\"><span class=\"kw3\">HASH<\/span><\/a> <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1000<\/span> <span class=\"sy0\">|<\/span> &nbsp; 145K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">6<\/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;<span class=\"nu0\">810<\/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\">85<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> TAB03 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">10000<\/span> <span class=\"sy0\">|<\/span> &nbsp; 439K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">4<\/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;<span class=\"nu0\">10000<\/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\">72<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">6<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; TABLE ACCESS FULL<span class=\"sy0\">|<\/span> TAB01 <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">10000<\/span> <span class=\"sy0\">|<\/span> &nbsp; 507K<span class=\"sy0\">|<\/span> &nbsp; &nbsp; <span class=\"nu0\">2<\/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;<span class=\"nu0\">810<\/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\">13<\/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\">1<\/span> <span class=\"sy0\">-<\/span> filter<span class=\"br0\">&#40;<\/span>ROWNUM<span class=\"sy0\">&lt;:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL02&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T2&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL02&quot;<\/span> AND <span class=\"st0\">&quot;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL03&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T2&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL03&quot;<\/span><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;T1&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL01&quot;<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;T3&quot;<\/span><span class=\"sy0\">.<\/span><span class=\"st0\">&quot;COL01&quot;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">28<\/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;\">Observe no plano de execu\u00e7\u00e3o que a estimativa de cardinalidade das opera\u00e7\u00f5es est\u00e3o muito pr\u00f3ximas do numero real de linhas selecionadas, como a estimativa de cardinalidade melhorou o Otimizador gerou um plano de execu\u00e7\u00e3o mais eficiente, neste plano de execu\u00e7\u00e3o foram lidos 87 Buffers enquanto no plano de execu\u00e7\u00e3o inicial foram 101 Buffers. Esta diferen\u00e7a de desempenho \u00e9 pequena mas em consultas mais complexas estes erros de estimativas de cardinalidade podem gerar planos de execu\u00e7\u00e3o com desempenho insatisfat\u00f3rio para os usu\u00e1rios.<\/span><\/p>\n<h2><span style=\"font-size: 14pt;\">Refer\u00eancias:<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/tgsql\/managing-extended-statistics.html#GUID-BD0F0B71-DD8B-44A0-888E-495830FC09A4\" target=\"_blank\">https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/<\/a><\/span><\/strong><\/p>\n<p>&nbsp;<br \/>\n&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;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Otimizador do Oracle cria planos de execu\u00e7\u00e3o com alta performance baseado nas estat\u00edsticas dos objetos no banco de dados, com estas informa\u00e7\u00f5es ele consegue fazer estimativas de acesso para cada uma das opera\u00e7\u00f5es do plano de execu\u00e7\u00e3o e a qualidade destas estimativas \u00e9 que determina o desempenho das instru\u00e7\u00f5es SQL. O padr\u00e3o de coleta de estat\u00edsticas \u00e9 baseado em<\/p>\n","protected":false},"author":2,"featured_media":1985,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[204,181,163,39,182,127,82,10,215,214,119],"class_list":["post-1984","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-estatisticas","tag-column-group-statistics","tag-create_extended_stats","tag-dbms_stats","tag-estatisticas","tag-estatisticas-estendidas","tag-extended-statistics","tag-optimizer","tag-otimizador","tag-report_col_usage","tag-seed_col_usage","tag-statistics"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1984","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=1984"}],"version-history":[{"count":12,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1984\/revisions"}],"predecessor-version":[{"id":2069,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/1984\/revisions\/2069"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/1985"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1984"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1984"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}