{"id":251,"date":"2016-01-17T23:25:03","date_gmt":"2016-01-18T01:25:03","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=251"},"modified":"2019-11-11T19:02:28","modified_gmt":"2019-11-11T22:02:28","slug":"qual-a-importancia-das-estatisticas-de-tabelas-para-o-otimizador","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/qual-a-importancia-das-estatisticas-de-tabelas-para-o-otimizador\/","title":{"rendered":"Qual a import\u00e2ncia das estat\u00edsticas de tabelas para o Otimizador?"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">O Otimizador baseado em custo (CBO) utiliza estat\u00edsticas para determinar o custo dos diversos planos de execu\u00e7\u00e3o que ele produz para uma determinada instru\u00e7\u00e3o SQL e escolhe o plano com o menor custo para utilizar, portanto as informa\u00e7\u00f5es estat\u00edsticas s\u00e3o cruciais na escolha do plano de execu\u00e7\u00e3o e devem fornecer informa\u00e7\u00f5es precisas e atualizadas para que o Otimizador consiga realizar um bom trabalho.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Existem tr\u00eas tipos de estat\u00edsticas de objetos: TABLE STATISTICS, COLUMN STATISTICS e INDEX STATISTICS. Nesse artigo vamos explorar um pouco as estat\u00edsticas de tabelas (TABLE STATISTICS), vamos fazer uma simula\u00e7\u00e3o e ver como o Otimizador utiliza essas informa\u00e7\u00f5es.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">TABLE STATISTICS<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">As informa\u00e7\u00f5es estat\u00edsticas de tabela podem ser consultadas na vis\u00e3o USER_TAB_STATISTICS, existem muitas informa\u00e7\u00f5es dispon\u00edveis nessa vis\u00e3o mas os campos mais importantes para o Otimizador s\u00e3o:<\/span><\/p>\n<p><span style=\"font-size: 12pt;\"><strong>NUM_ROWS<\/strong>\u00a0 \u00a0 \u00a0 \u00a0 &#8211; N\u00famero de linhas na tabela<\/span><br \/>\n<span style=\"font-size: 12pt;\"><strong>AVG_ROW_LEN<\/strong>\u00a0 &#8211; Tamanho m\u00e9dio de uma linha na tabela<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para ilustrar na pr\u00e1tica a utiliza\u00e7\u00e3o das estat\u00edsticas de tabelas, vamos fazer uma simula\u00e7\u00e3o simples com uma consulta utilizando o &#8220;<strong><a href=\"https:\/\/docs.oracle.com\/cd\/E18283_01\/server.112\/e10831\/overview.htm#sthref6\" target=\"_blank\">SAMPLE SCHEMA HR<\/a><\/strong>&#8221; que faz parte da instala\u00e7\u00e3o do banco de dados Oracle, nessa simula\u00e7\u00e3o vamos executar a mesma consulta duas vezes, uma sem estat\u00edsticas e outra com estat\u00edsticas, o par\u00e2metro OPTIMIZER_DYNAMIC_SAMPLING ser\u00e1 desativado a n\u00edvel de sess\u00e3o pois o objetivo \u00e9 verificar como o Otimizador utiliza as estat\u00edsticas de tabela na montagem do plano de execu\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Caso tenha alguma d\u00favida na leitura do plano de execu\u00e7\u00e3o gerado pelo pacote DBMS_XPLAN consulte a s\u00e9rie de artigos que vai ajuda-lo a interpretar essas informa\u00e7\u00f5es:<\/span><\/p>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/execution-plan-como-verificar-a-ordem-que-as-operacoes-sao-realizadas\/\" target=\"_blank\">1. Como verificar a ordem que as opera\u00e7\u00f5es s\u00e3o realizadas<\/a><\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/execution-plan-como-interpretar-os-valores-estatisticos-estimados\/\" target=\"_blank\">2. Como interpretar os valores estat\u00edsticos estimados<\/a><\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/execution-plan-como-interpretar-os-valores-estatisticos-coletados-durante-a-execucao\/\" target=\"_blank\">3. Como interpretar os valores estat\u00edsticos coletados durante a execu\u00e7\u00e3o<\/a><\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/execution-plan-como-interpretar-as-secoes-nao-estatisticas-do-plano-de-execucao\/\" target=\"_blank\">4. Como interpretar as se\u00e7\u00f5es n\u00e3o estat\u00edsticas do plano de execu\u00e7\u00e3o<\/a><\/span><\/strong><\/p>\n<h2><span style=\"font-size: 14pt;\">Consulta sem as estat\u00edsticas de tabelas<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para execu\u00e7\u00e3o da consulta sem as estat\u00edsticas de tabelas vamos criar uma nova tabela copia da tabela EMPLOYEES e n\u00e3o vamos coletar as estat\u00edsticas, em seguida vamos verificar como o Otimizador estimou o numero de linhas dessa tabela.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/><\/div><\/td><td><div class=\"php codecolorer\">HR<span class=\"sy0\">@<\/span>LAB11 <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> Production<br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> linha selecionada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nDecorrido<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.07<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> CREATE TABLE EMP<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;<span class=\"kw1\">AS<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp;SELECT <span class=\"sy0\">*<\/span> FROM EMPLOYEES<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTabela criada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> SELECT num_rows<span class=\"sy0\">,<\/span> &nbsp;avg_row_len<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM user_tab_statistics<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE table_name <span class=\"sy0\">=<\/span> <span class=\"st_h\">'EMP'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; NUM_ROWS AVG_ROW_LEN<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-----------<\/span><br \/>\n<br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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 \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> Alter session set optimizer_dynamic_sampling<span class=\"sy0\">=<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* tst102 *\/<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp;from EMP<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nEMPLOYEE_ID FIRST_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EMAIL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PHONE_NUMBER &nbsp; &nbsp; &nbsp; &nbsp; HIRE_DAT JOB_ID &nbsp; &nbsp; &nbsp; &nbsp; SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID<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> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------<\/span> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">198<\/span> Donald &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OConnell &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DOCONNEL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9833 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">21<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">06<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">07<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2600<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">199<\/span> Douglas &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Grant &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DGRANT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9844 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">13<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">01<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">08<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2600<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">200<\/span> Jennifer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Whalen &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JWHALEN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 515<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>4444 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">09<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">03<\/span> AD_ASST &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">4400<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">101<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">201<\/span> Michael &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Hartstein &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MHARTSTE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;515<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>5555 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">02<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">04<\/span> MK_MAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">13000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">100<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">202<\/span> Pat &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Fay &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PFAY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;603<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>6666 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">08<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span> MK_REP &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">6000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">201<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span><br \/>\n<span class=\"sy0\">..<\/span><br \/>\n<span class=\"sy0\">..<\/span><br \/>\n<span class=\"sy0\">..<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">197<\/span> Kevin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Feeney &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;KFEENEY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9822 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">23<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">06<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n<br \/>\n<span class=\"nu0\">107<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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\">'%tst102%'<\/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 \/>\n923fg367zbm89 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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 \/>\nantigo &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 \/>\nnovo &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\">'923fg367zbm89'<\/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 \/>\n<br \/>\nSQL_ID &nbsp;923fg367zbm89<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* tst102 *\/<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">*<\/span> &nbsp; from EMP<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\">3956160932<\/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; <span class=\"sy0\">|<\/span> Name <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;<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\">3<\/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\">107<\/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> &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;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> EMP &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">409<\/span> <span class=\"sy0\">|<\/span> <span class=\"nu0\">54397<\/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;<span class=\"nu0\">107<\/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> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">13<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">No plano de execu\u00e7\u00e3o acima observamos que a consulta retornou 107 linhas (A-Rows) porem o otimizador estimou 409 (E-Rows), esta estimativa \u00e9 baseada em valores padr\u00f5es que o Otimizador assume quando n\u00e3o existem estat\u00edsticas para a tabela.<\/span><\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/01\/default_values.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-257 size-full\" src=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/01\/default_values.jpg\" alt=\"Default values\" width=\"740\" height=\"182\" srcset=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/01\/default_values.jpg 740w, http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/01\/default_values-300x74.jpg 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para chegar ao valor 409 (E-Rows) o Otimizador utilizou a formula {num_of_blocks * (block_size &#8211; cache_layer) \/ avg_row_len}, o valor &#8220;block_size&#8221; \u00e9 8.192 no banco que estamos realizando essa simula\u00e7\u00e3o, o valor &#8220;cache_layer&#8221; = 24 e o valor &#8220;avg_row_len&#8221; quando n\u00e3o existem estat\u00edsticas para a tabela \u00e9 100 bytes conforme tabela acima. Para calcular o resultado da formula falta descobrir o valor de &#8220;num_of_blocks&#8221; que pode ser 100 ou valor real baseado no &#8220;extent map&#8221;, a seguir vamos utilizar o pacote &#8220;DBMS_SPACE.UNUSED_SPACE&#8221; para descobrir o numero de blocos utilizados pela tabela.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/><\/div><\/td><td><div class=\"php codecolorer\">dbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> show parameters db_block_size<br \/>\n<br \/>\nNAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TYPE &nbsp; &nbsp; &nbsp; &nbsp;VALUE<br \/>\n<span class=\"sy0\">------------------------------------<\/span> <span class=\"sy0\">-----------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\ndb_block_size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;integer &nbsp; &nbsp; <span class=\"nu0\">8192<\/span><br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> create or replace<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;procedure show_space<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; <span class=\"br0\">&#40;<\/span>p_segname in varchar2<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp;p_owner in varchar2 <span class=\"kw1\">default<\/span> user<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp;p_type in varchar2 <span class=\"kw1\">default<\/span> <span class=\"st_h\">'TABLE'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp;p_partition in varchar2 <span class=\"kw1\">default<\/span> <span class=\"kw4\">NULL<\/span> <span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp;authid current_user<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;<span class=\"kw1\">as<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp;l_free_blks number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp;l_total_blocks number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp;l_total_bytes number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp;l_unused_blocks number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">13<\/span> &nbsp;l_unused_bytes number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">14<\/span> &nbsp;l_LastUsedExtFileId number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">15<\/span> &nbsp;l_LastUsedExtBlockId number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">16<\/span> &nbsp;l_LAST_USED_BLOCK number<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">17<\/span><br \/>\n&nbsp;<span class=\"nu0\">18<\/span> &nbsp;procedure p<span class=\"br0\">&#40;<\/span> p_label in varchar2<span class=\"sy0\">,<\/span> p_num in number <span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">19<\/span> &nbsp;is<br \/>\n&nbsp;<span class=\"nu0\">20<\/span> &nbsp;begin<br \/>\n&nbsp;<span class=\"nu0\">21<\/span> &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span> rpad<span class=\"br0\">&#40;<\/span>p_label<span class=\"sy0\">,<\/span><span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'.'<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span><br \/>\n&nbsp;<span class=\"nu0\">22<\/span> &nbsp;p_num <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">23<\/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\">24<\/span><br \/>\n&nbsp;<span class=\"nu0\">25<\/span> &nbsp;begin<br \/>\n&nbsp;<span class=\"nu0\">26<\/span> &nbsp;dbms_space<span class=\"sy0\">.<\/span>unused_space<br \/>\n&nbsp;<span class=\"nu0\">27<\/span> &nbsp;<span class=\"br0\">&#40;<\/span> segment_owner <span class=\"sy0\">=&gt;<\/span> p_owner<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">28<\/span> &nbsp;segment_name <span class=\"sy0\">=&gt;<\/span> p_segname<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">29<\/span> &nbsp;segment_type <span class=\"sy0\">=&gt;<\/span> p_type<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">30<\/span> &nbsp;partition_name <span class=\"sy0\">=&gt;<\/span> p_partition<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">31<\/span> &nbsp;total_blocks <span class=\"sy0\">=&gt;<\/span> l_total_blocks<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">32<\/span> &nbsp;total_bytes <span class=\"sy0\">=&gt;<\/span> l_total_bytes<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">33<\/span> &nbsp;unused_blocks <span class=\"sy0\">=&gt;<\/span> l_unused_blocks<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">34<\/span> &nbsp;unused_bytes <span class=\"sy0\">=&gt;<\/span> l_unused_bytes<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">35<\/span> &nbsp;LAST_USED_EXTENT_FILE_ID <span class=\"sy0\">=&gt;<\/span> l_LastUsedExtFileId<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">36<\/span> &nbsp;LAST_USED_EXTENT_BLOCK_ID <span class=\"sy0\">=&gt;<\/span> l_LastUsedExtBlockId<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">37<\/span> &nbsp;LAST_USED_BLOCK <span class=\"sy0\">=&gt;<\/span> l_LAST_USED_BLOCK <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">38<\/span><br \/>\n&nbsp;<span class=\"nu0\">39<\/span> &nbsp;p<span class=\"br0\">&#40;<\/span> <span class=\"st_h\">'Total Blocks'<\/span><span class=\"sy0\">,<\/span> l_total_blocks <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">40<\/span> &nbsp;p<span class=\"br0\">&#40;<\/span> <span class=\"st_h\">'Unused Blocks'<\/span><span class=\"sy0\">,<\/span> l_unused_blocks <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">41<\/span> &nbsp;p<span class=\"br0\">&#40;<\/span> <span class=\"st_h\">'Blocks Used'<\/span><span class=\"sy0\">,<\/span> l_total_blocks<span class=\"sy0\">-<\/span>l_unused_blocks <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">42<\/span><br \/>\n&nbsp;<span class=\"nu0\">43<\/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\">44<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedimento criado<span class=\"sy0\">.<\/span><br \/>\n<br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> set serveroutput on<br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> show_space<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'EMP'<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'HR'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nTotal Blocks<span class=\"sy0\">............................<\/span><span class=\"nu0\">8<\/span><br \/>\nUnused Blocks<span class=\"sy0\">...........................<\/span><span class=\"nu0\">3<\/span><br \/>\nBlocks Used<span class=\"sy0\">.............................<\/span><span class=\"nu0\">5<\/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 \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select <span class=\"nu0\">5<\/span><span class=\"sy0\">*<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">8192<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">24<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">100<\/span> from dual<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"nu0\">5<\/span><span class=\"sy0\">*<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">8192<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">24<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">100<\/span><br \/>\n<span class=\"sy0\">---------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">408<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">4<\/span><br \/>\n<br \/>\ndbauser<span class=\"sy0\">@<\/span>LAB11 <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;\">Conforme resultado da &#8220;procedure&#8221;\u00a0acima o n\u00famero de blocos usados pela tabela s\u00e3o 5 e aplicando esse valor na formula informada na documenta\u00e7\u00e3o da Oracle temos um resultado de 408,4 que \u00e9 o mesmo valor arrendondado que aparece no plano de execu\u00e7\u00e3o no campo E-Rows = 409.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><\/h2>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Consulta com as estat\u00edsticas de tabelas<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Agora vamos coletar as estat\u00edsticas da tabela utilizada na nossa simula\u00e7\u00e3o, executar a consulta novamente e observar quantas linha o Otimizador vai estimar para o plano de execu\u00e7\u00e3o.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/><\/div><\/td><td><div class=\"php codecolorer\">HR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> BEGIN<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; dbms_stats<span class=\"sy0\">.<\/span>gather_table_stats<span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; ownname <span class=\"sy0\">=&gt;<\/span> user<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; tabname <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'EMP'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; estimate_percent <span class=\"sy0\">=&gt;<\/span> <span class=\"nu0\">100<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; method_opt <span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'for all columns size auto'<\/span><span class=\"sy0\">,<\/span> cascade <span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">TRUE<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/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\">8<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedimento PL<span class=\"sy0\">\/<\/span>SQL conclu\u00ed<span class=\"kw1\">do<\/span> com sucesso<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> SELECT num_rows<span class=\"sy0\">,<\/span> &nbsp;avg_row_len<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM user_tab_statistics<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; WHERE table_name <span class=\"sy0\">=<\/span> <span class=\"st_h\">'EMP'<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; NUM_ROWS AVG_ROW_LEN<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">-----------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">107<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">69<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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 \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> Alter session set optimizer_dynamic_sampling<span class=\"sy0\">=<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSess\u00e3o alterada<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* tst104 *\/<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp;from EMP<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nEMPLOYEE_ID FIRST_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EMAIL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PHONE_NUMBER &nbsp; &nbsp; &nbsp; &nbsp; HIRE_DAT JOB_ID &nbsp; &nbsp; &nbsp; &nbsp; SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID<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> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">--------------<\/span> <span class=\"sy0\">----------<\/span> <span class=\"sy0\">-------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">198<\/span> Donald &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OConnell &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DOCONNEL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9833 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">21<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">06<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">07<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2600<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">199<\/span> Douglas &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Grant &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DGRANT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9844 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">13<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">01<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">08<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2600<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">200<\/span> Jennifer &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Whalen &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JWHALEN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 515<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>4444 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">09<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">03<\/span> AD_ASST &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">4400<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">101<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">201<\/span> Michael &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Hartstein &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MHARTSTE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;515<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>5555 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">02<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">04<\/span> MK_MAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">13000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">100<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">202<\/span> Pat &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Fay &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PFAY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;603<span class=\"sy0\">.<\/span>123<span class=\"sy0\">.<\/span>6666 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">17<\/span><span class=\"sy0\">\/<\/span><span class=\"nu19\">08<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span> MK_REP &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">6000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">201<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">20<\/span><br \/>\n<span class=\"sy0\">...<\/span><br \/>\n<span class=\"sy0\">...<\/span><br \/>\n<span class=\"sy0\">...<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">197<\/span> Kevin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Feeney &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;KFEENEY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 650<span class=\"sy0\">.<\/span>507<span class=\"sy0\">.<\/span>9822 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">23<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">06<\/span> SH_CLERK &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">124<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">50<\/span><br \/>\n<br \/>\n<span class=\"nu0\">107<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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\">'%tst104%'<\/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 \/>\n85hb1va9m5s58 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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 \/>\nantigo &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 \/>\nnovo &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\">'85hb1va9m5s58'<\/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 \/>\n<br \/>\nSQL_ID &nbsp;85hb1va9m5s58<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* tst104 *\/<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">*<\/span> &nbsp; from EMP<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\">3956160932<\/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; <span class=\"sy0\">|<\/span> Name <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;<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\">3<\/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\">107<\/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\">11<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> EMP &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">107<\/span> <span class=\"sy0\">|<\/span> &nbsp;<span class=\"nu0\">7383<\/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;<span class=\"nu0\">107<\/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\">11<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">13<\/span> linhas selecionadas<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nHR<span class=\"sy0\">@<\/span>LAB11 <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;\">Ap\u00f3s a coleta de estat\u00edsticas podemos observar que estimativa de linhas selecionadas \u00e9 igual ao n\u00famero de linhas que a consulta retorna (107 linhas), ou seja, quando as estat\u00edsticas existem o Otimizador as utiliza.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Conclus\u00e3o<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Nesta simula\u00e7\u00e3o utilizamos uma consulta simples, a exist\u00eancia ou n\u00e3o de estat\u00edstica n\u00e3o fez diferen\u00e7a em termos de plano de execu\u00e7\u00e3o pois neste caso a consulta n\u00e3o tem filtro na clausula WHERE e a execu\u00e7\u00e3o da opera\u00e7\u00e3o &#8220;TABLE ACCESS FULL&#8221; na tabela &#8220;EMP&#8221; \u00e9 inevit\u00e1vel. Entretanto se essa consulta fosse uma jun\u00e7\u00e3o de duas tabelas, a exist\u00eancia das estat\u00edsticas de tabela\u00a0seria crucial na decis\u00e3o de qual tipo de JOIN seria utilizado nessa opera\u00e7\u00e3o.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Refer\u00eancias<\/span><\/h2>\n<p><a href=\"http:\/\/docs.oracle.com\/cd\/E25054_01\/server.1111\/e16638\/stats.htm\" target=\"_blank\">http:\/\/docs.oracle.com\/cd\/E25054_01\/server.1111\/e16638\/stats.htm<\/a><\/p>\n<p><a href=\"http:\/\/kamranagayev.com\/2011\/10\/31\/dumping-an-oracle-data-block-reading-the-output-and-doing-some-math\/\" target=\"_blank\">http:\/\/kamranagayev.com\/2011\/10\/31\/dumping-an-oracle-data-block-reading-the-output-and-doing-some-math\/<\/a><\/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>O Otimizador baseado em custo (CBO) utiliza estat\u00edsticas para determinar o custo dos diversos planos de execu\u00e7\u00e3o que ele produz para uma determinada instru\u00e7\u00e3o SQL e escolhe o plano com o menor custo para utilizar, portanto as informa\u00e7\u00f5es estat\u00edsticas s\u00e3o cruciais na escolha do plano de execu\u00e7\u00e3o e devem fornecer informa\u00e7\u00f5es precisas e atualizadas para que o Otimizador consiga realizar<\/p>\n","protected":false},"author":2,"featured_media":252,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[65,6,42,76,46,73,36,75,10,29,11,45,72,61,74],"class_list":["post-251","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-estatisticas","tag-ajuste-de-desempenho","tag-cbo","tag-cost-base-optimizer","tag-dbms_space-unused_space","tag-dbms_xplan-display_cursor","tag-estatisticas-de-tabelas","tag-execution-plan","tag-num_rows","tag-otimizador","tag-performance-tuning","tag-plano-de-execucao","tag-sql-statement-analysis","tag-table-statistics","tag-tempo-de-reposta","tag-user_tab_statistics"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/251","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=251"}],"version-history":[{"count":25,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/251\/revisions"}],"predecessor-version":[{"id":2106,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/251\/revisions\/2106"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/252"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=251"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}