{"id":222,"date":"2016-01-03T23:16:49","date_gmt":"2016-01-04T01:16:49","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=222"},"modified":"2019-10-10T22:52:00","modified_gmt":"2019-10-11T01:52:00","slug":"quando-devemos-criar-um-indice-composto","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/quando-devemos-criar-um-indice-composto\/","title":{"rendered":"Quando devemos criar um \u00edndice composto?"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">\u00c9 comum encontrar aplica\u00e7\u00f5es cujas tabelas possuem muitos \u00edndices unit\u00e1rios (uma coluna) e nenhum \u00edndice composto (duas ou mais colunas), as ultimas vers\u00f5es do banco de dados Oracle j\u00e1 trata essa defici\u00eancia de estrutura das aplica\u00e7\u00f5es com o uso da opera\u00e7\u00e3o &#8220;BITMAP AND&#8221; no plano de execu\u00e7\u00e3o, mas em alguns casos a utiliza\u00e7\u00e3o do \u00edndice composto continua sendo a melhor solu\u00e7\u00e3o para uma instru\u00e7\u00e3o SQL que esteja causando impacto de performance para os usu\u00e1rios da aplica\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Considere a cria\u00e7\u00e3o de um \u00edndice composto em colunas que s\u00e3o freq\u00fcentemente usadas juntas na cl\u00e1usula &#8220;WHERE&#8221; combinadas com o operador &#8220;AND&#8221;, principalmente se a seletividade das colunas combinadas \u00e9 melhor do que a seletividade de qualquer uma delas individualmente.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Seletividade de um \u00edndice<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A seletividade de um \u00edndice pode variar de 0 a 1, sendo 1 ou 100% a seletividade ideal, normalmente \u00edndices &#8220;Primary Key&#8221; ou &#8220;Unique Key&#8221; possuem seletividade 1. Para calcular a seletividade de um \u00edndice de uma coluna utilizamos a seguinte formula:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">seletividade = N\u00famero de valores diferentes da coluna \/ Numero de registros da tabela<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Por exemplo, uma tabela com 10.000 registros e um \u00edndice unit\u00e1rio dessa tabela\u00a0que tem 8.700 valores diferentes, a seletividade ser\u00e1 0,87 ou 87% (seletividade=8700\/10000).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Podemos calcular a seletividade de um \u00edndice de forma r\u00e1pida executando uma consulta na vis\u00e3o &#8220;DBA_INDEXES&#8221;:<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/><\/div><\/td><td><div class=\"php codecolorer\">appuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> set tab off<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> col <span class=\"st0\">&quot;Percentual&quot;<\/span> <span class=\"kw1\">for<\/span> a10<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select index_name <span class=\"st0\">&quot;Nome do \u00edndice&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; num_rows <span class=\"st0\">&quot;Total linhas&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; distinct_keys <span class=\"st0\">&quot;Qtde linhas diferentes&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/round\"><span class=\"kw3\">round<\/span><\/a><span class=\"br0\">&#40;<\/span>distinct_keys<span class=\"sy0\">\/<\/span>num_rows<span class=\"sy0\">,<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span> <span class=\"st0\">&quot;Seletividade&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LPAD<span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/round\"><span class=\"kw3\">round<\/span><\/a><span class=\"br0\">&#40;<\/span>distinct_keys<span class=\"sy0\">\/<\/span>num_rows<span class=\"sy0\">,<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">*<\/span><span class=\"nu0\">100<\/span><span class=\"sy0\">||<\/span><span class=\"st_h\">' %'<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">' '<\/span><span class=\"br0\">&#41;<\/span> <span class=\"st0\">&quot;Percentual&quot;<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp;from dba_indexes<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp;where table_name <span class=\"sy0\">=<\/span> <span class=\"st_h\">'TAB01'<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;order by index_name<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nNome <span class=\"kw1\">do<\/span> \u00edndice &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Total linhas Qtde linhas diferentes Seletividade Percentual<br \/>\n<span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------<\/span> <span class=\"sy0\">----------------------<\/span> <span class=\"sy0\">------------<\/span> <span class=\"sy0\">----------<\/span><br \/>\nIDX_CATEGORIA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">100000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu19\">.01<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">%<\/span><br \/>\nIDX_CODVAR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">100000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">100<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span> <span class=\"sy0\">%<\/span><br \/>\nIDX_COMPOSTO &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">100000<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">63098<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu19\">.63<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">63<\/span> <span class=\"sy0\">%<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.05<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <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;\">Demonstra\u00e7\u00e3o do \u00edndice composto<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Vamos fazer uma simula\u00e7\u00e3o para verificar se h\u00e1 alguma vantagem em utilizar um \u00edndice composto, em nossa simula\u00e7\u00e3o vamos utilizar uma consulta em uma tabela com dois filtros na cl\u00e1usula WHERE, inicialmente vamos executar a consulta com dois \u00edndices criados para cada uma das colunas referenciadas na cl\u00e1usula WHERE. Na sequ\u00eancia vamos criar um \u00edndice composto com essas duas colunas e executar a consulta novamente para avaliar o resultado.<\/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<p>&nbsp;<\/p>\n<h3><span style=\"font-size: 12pt;\">Criando a Tabela e seus \u00cdndices<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para esta simula\u00e7\u00e3o vamos criar uma tabela e inserir nela 100.000 linhas, criar dois \u00edndices e gerar suas estat\u00edsticas.<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">appuser<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> 64bit Production<br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.19<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <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;with contador <span class=\"kw1\">as<\/span> <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp;select rownum id<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp;from dual<br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; connect by rownum <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">100000<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp;<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp;select rownum &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp; &nbsp; &nbsp; &nbsp; mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; codvar<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp; &nbsp; &nbsp; trunc<span class=\"br0\">&#40;<\/span>dbms_random<span class=\"sy0\">.<\/span>value<span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> &nbsp;categoria<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp; &nbsp; lpad<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'0'<\/span><span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;criterio<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp; &nbsp; &nbsp; &nbsp; rpad<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'x'<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">60<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'x'<\/span><span class=\"br0\">&#41;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;texto<br \/>\n&nbsp;<span class=\"nu0\">13<\/span> &nbsp; &nbsp;from contador &nbsp; v1<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">14<\/span> &nbsp; &nbsp; &nbsp; &nbsp; contador &nbsp; v2<br \/>\n&nbsp;<span class=\"nu0\">15<\/span> &nbsp; where rownum <span class=\"sy0\">&lt;=<\/span> <span class=\"nu0\">100000<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTable created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">01.27<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> create index idx_id on tab01<span class=\"br0\">&#40;<\/span>id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nIndex created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.18<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> create index idx_categoria on tab01<span class=\"br0\">&#40;<\/span>categoria<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nIndex created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<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.16<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> dbms_stats<span class=\"sy0\">.<\/span>GATHER_TABLE_STATS<span class=\"br0\">&#40;<\/span>ownname <span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'APPUSER'<\/span><span class=\"sy0\">,<\/span>tabname <span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'TAB01'<\/span><span class=\"sy0\">,<\/span>method_opt<span class=\"sy0\">=&gt;<\/span><span class=\"st_h\">'FOR ALL INDEXED COLUMNS SIZE 254'<\/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<br \/>\nPL<span class=\"sy0\">\/<\/span>SQL procedure successfully completed<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<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.46<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Consulta com \u00edndices unit\u00e1rios<\/span><\/h3>\n<p>&nbsp;<br \/>\n<span style=\"font-size: 12pt;\">Agora vamos executar a primeira consulta e verificar se os \u00edndices s\u00e3o utilizados no plano de execu\u00e7\u00e3o:<\/span><br \/>\n&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/><\/div><\/td><td><div class=\"php codecolorer\">appuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> set <span class=\"kw1\">echo<\/span> off<span class=\"sy0\">;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> set tab off<span class=\"sy0\">;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><span class=\"sy0\">;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<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 \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<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.00<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* tst401 *\/<\/span> <span class=\"sy0\">*<\/span> from tab01<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; where id between <span class=\"nu0\">3000<\/span> and <span class=\"nu0\">7000<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; and categoria <span class=\"sy0\">=<\/span> <span class=\"nu0\">500<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; ID &nbsp; &nbsp; CODVAR &nbsp;CATEGORIA CRITERIO &nbsp; TEXTO<br \/>\n<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; <span class=\"nu0\">3211<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu8\">0000003211<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">4295<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">95<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000004295<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">4391<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">91<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000004391<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">5091<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">91<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000005091<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">6146<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">46<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu8\">0000006146<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n<br \/>\nElapsed<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><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<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\">'%tst401%'<\/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 \/>\n2mxjd0f4wnyj6 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.05<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<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\">'basic iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nold &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\">'basic iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'2mxjd0f4wnyj6'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'basic 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 \/>\nEXPLAINED SQL STATEMENT<span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* tst401 *\/<\/span> <span class=\"sy0\">*<\/span> from tab01 &nbsp;where id between <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span> and<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> &nbsp; &nbsp;and categoria <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&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\">2854783063<\/span><br \/>\n<br \/>\n<span class=\"sy0\">-------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">-------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">17<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">17<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS BY INDEX ROWID &nbsp; &nbsp; <span class=\"sy0\">|<\/span> TAB01 &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">17<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;BITMAP CONVERSION TO ROWIDS &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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> &nbsp; <span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; BITMAP AND &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">12<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">5<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;BITMAP CONVERSION FROM ROWIDS<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">6<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> IDX_CATEGORIA <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3739<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">101<\/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\">7<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;BITMAP CONVERSION FROM ROWIDS<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.01<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">10<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">8<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/sort\"><span class=\"kw3\">SORT<\/span><\/a> ORDER BY &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">4001<\/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\">10<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">9<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> IDX_ID &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">3739<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">4001<\/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\">10<\/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><span class=\"sy0\">:<\/span>SYS_B_1<span class=\"sy0\">&gt;=:<\/span>SYS_B_0<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">6<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CATEGORIA&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_2<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"nu0\">9<\/span> <span class=\"sy0\">-<\/span> access<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;ID&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_0 AND <span class=\"st0\">&quot;ID&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">29<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.03<\/span><br \/>\nappuser<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;\">Verificando no plano de execu\u00e7\u00e3o acima, podemos observar\u00a0que o Otimizador escolheu um plano que utiliza os dois \u00edndices (IDX_CATEGORIA,IDX_ID) atrav\u00e9s da opera\u00e7\u00e3o &#8220;BITMAP AND&#8221;. Esse plano \u00e9 executado em mil\u00e9simos de segundo, porem o campo &#8220;A-TIME&#8221; registra que o tempo de execu\u00e7\u00e3o da consulta foi 1 cent\u00e9simo de segundo\u00a0que \u00e9 o resultado do arredondamento do\u00a0tempo\u00a0real,\u00a0devido a limita\u00e7\u00e3o do campo &#8220;A-TIME&#8221;, por essa raz\u00e3o vamos utilizar a quantidade de &#8220;Buffers&#8221; lidos para comparar a efici\u00eancia do plano de execu\u00e7\u00e3o que no caso dessa consulta foram 17 Buffers.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Consulta com \u00edndice composto<\/span><\/h3>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Na sequ\u00eancia vamos criar um \u00edndice composto com as duas colunas utilizadas no filtro da cl\u00e1usula WHERE (CATEGORIA,ID) e executar novamente a mesma consulta para verificar se o Otimizador vai utilizar este \u00edndice e qual o plano de execu\u00e7\u00e3o que ele vai escolher:<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/><\/div><\/td><td><div class=\"php codecolorer\">ppuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> create index idx_composto on tab01<span class=\"br0\">&#40;<\/span>categoria<span class=\"sy0\">,<\/span>id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nIndex created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<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.26<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> select <span class=\"coMULTI\">\/* tst402 *\/<\/span> <span class=\"sy0\">*<\/span> from tab01<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; where id between <span class=\"nu0\">3000<\/span> and <span class=\"nu0\">7000<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; and categoria <span class=\"sy0\">=<\/span> <span class=\"nu0\">500<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; ID &nbsp; &nbsp; CODVAR &nbsp;CATEGORIA CRITERIO &nbsp; TEXTO<br \/>\n<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; <span class=\"nu0\">3211<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu8\">0000003211<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">4295<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">95<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000004295<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">4391<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">91<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000004391<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">5091<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">91<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu19\">0000005091<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"nu0\">6146<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">46<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">500<\/span> <span class=\"nu8\">0000006146<\/span> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br \/>\n<br \/>\nElapsed<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.00<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<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\">'%tst402%'<\/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 \/>\ngd8whz92pvq8x &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\nElapsed<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.04<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<span class=\"sy0\">@<\/span>LAB11 <span class=\"sy0\">&gt;<\/span><br \/>\nappuser<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\">'basic iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\nold &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\">'basic iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><br \/>\n<span class=\"kw2\">new<\/span> &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy0\">:<\/span> &nbsp; FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'gd8whz92pvq8x'<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy0\">,<\/span><span class=\"st_h\">'basic 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 \/>\nEXPLAINED SQL STATEMENT<span class=\"sy0\">:<\/span><br \/>\n<span class=\"sy0\">------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* tst402 *\/<\/span> <span class=\"sy0\">*<\/span> from tab01 &nbsp;where id between <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_0&quot;<\/span> and<br \/>\n<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_1&quot;<\/span> &nbsp; &nbsp;and categoria <span class=\"sy0\">=<\/span> <span class=\"sy0\">:<\/span><span class=\"st0\">&quot;SYS_B_2&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\">1105024155<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span> Reads &nbsp;<span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">8<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;FILTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<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=\"nu0\">5<\/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\">8<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">2<\/span> <span class=\"sy0\">|<\/span> &nbsp; TABLE ACCESS BY INDEX ROWID<span class=\"sy0\">|<\/span> TAB01 &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">8<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|*<\/span> &nbsp;<span class=\"nu0\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;INDEX <a href=\"http:\/\/www.php.net\/range\"><span class=\"kw3\">RANGE<\/span><\/a> SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> IDX_COMPOSTO <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">4<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5<\/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\">3<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/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><span class=\"sy0\">:<\/span>SYS_B_1<span class=\"sy0\">&gt;=:<\/span>SYS_B_0<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;CATEGORIA&quot;<\/span><span class=\"sy0\">=:<\/span>SYS_B_2 AND <span class=\"st0\">&quot;ID&quot;<\/span><span class=\"sy0\">&gt;=:<\/span>SYS_B_0 AND <span class=\"st0\">&quot;ID&quot;<\/span><span class=\"sy0\">&lt;=:<\/span>SYS_B_1<span class=\"br0\">&#41;<\/span><br \/>\n<br \/>\n<br \/>\n<span class=\"nu0\">22<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nElapsed<span class=\"sy0\">:<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.02<\/span><br \/>\nappuser<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;\">Analisando o plano de execu\u00e7\u00e3o acima notamos que o \u00edndice composto criado foi utilizado pelo Otimizador e que a efici\u00eancia do plano melhorou pois o numero de Buffers diminuiu de 17 para 8, uma redu\u00e7\u00e3o de 53% do numero de Buffers visitados.<\/span><\/p>\n<p>&nbsp;<\/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;\">O Objetivo dessa simula\u00e7\u00e3o era verificar se a utiliza\u00e7\u00e3o de um \u00edndice composto proporciona alguma melhoria no plano de execu\u00e7\u00e3o de uma consulta que possui mais que um filtro da mesma tabela na cl\u00e1usula WHERE. Conforme pudemos constatar mesmo com as melhorias implementadas no Otimizador na ultimas vers\u00f5es do banco de dados Oracle, ainda continua sendo uma op\u00e7\u00e3o de ajuste de desempenho a utiliza\u00e7\u00e3o de \u00edndices compostos que na nossa simula\u00e7\u00e3o foi com duas colunas, mas poderiam ser tr\u00eas ou mais.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">Refer\u00eancias<\/span><\/h2>\n<p><span style=\"font-size: 12pt;\"><a href=\"https:\/\/docs.oracle.com\/cd\/E11882_01\/server.112\/e41573\/data_acc.htm#PFGRF94776\" target=\"_blank\">https:\/\/docs.oracle.com\/cd\/E11882_01\/server.112\/e41573\/data_acc.htm#PFGRF94776<\/a><\/span><\/p>\n<p><a href=\"http:\/\/www.akadia.com\/services\/ora_index_selectivity.html\" target=\"_blank\">http:\/\/www.akadia.com\/services\/ora_index_selectivity.html<\/a><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;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c9 comum encontrar aplica\u00e7\u00f5es cujas tabelas possuem muitos \u00edndices unit\u00e1rios (uma coluna) e nenhum \u00edndice composto (duas ou mais colunas), as ultimas vers\u00f5es do banco de dados Oracle j\u00e1 trata essa defici\u00eancia de estrutura das aplica\u00e7\u00f5es com o uso da opera\u00e7\u00e3o &#8220;BITMAP AND&#8221; no plano de execu\u00e7\u00e3o, mas em alguns casos a utiliza\u00e7\u00e3o do \u00edndice composto continua sendo a melhor<\/p>\n","protected":false},"author":2,"featured_media":223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62],"tags":[65,6,63,42,64,10,29,67,66,45],"class_list":["post-222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-indice","tag-ajuste-de-desempenho","tag-cbo","tag-composite-index","tag-cost-base-optimizer","tag-indice-composto","tag-otimizador","tag-performance-tuning","tag-selectivity","tag-seletividade","tag-sql-statement-analysis"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/222","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=222"}],"version-history":[{"count":25,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":2049,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/222\/revisions\/2049"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/223"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}