{"id":2183,"date":"2020-07-26T22:12:04","date_gmt":"2020-07-27T01:12:04","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=2183"},"modified":"2020-07-26T22:12:04","modified_gmt":"2020-07-27T01:12:04","slug":"voce-sabe-identificar-consultas-demoradas-no-codigo-plsql","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/voce-sabe-identificar-consultas-demoradas-no-codigo-plsql\/","title":{"rendered":"Voc\u00ea sabe identificar consultas demoradas no c\u00f3digo PL\/SQL?"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Durante o desenvolvimento ou altera\u00e7\u00e3o de um c\u00f3digo PL\/SQL eventualmente o desempenho ou tempo de execu\u00e7\u00e3o deste c\u00f3digo pode ser insatisfat\u00f3rio, <\/span><span style=\"font-size: 12pt;\">dependendo do tamanho c\u00f3digo e de quantas instru\u00e7\u00f5es SQL existem nele pode haver certa dificuldade para identificar qual ou quais instru\u00e7\u00f5es SQL est\u00e3o causando a perda de desempenho, para ajudar a identificar as instru\u00e7\u00f5es do c\u00f3digo que est\u00e3o com baixo desempenho voc\u00ea pode utilizar o pacote DBMS_TRACE.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A proposta deste artigo \u00e9 mostrar um exemplo pr\u00e1tico de como podemos utilizar o pacote DBMS_TRACE para identificar num c\u00f3digo PL\/SQL qual \u00e9 a consulta que est\u00e1 com baixo desempenho, fazer a melhoria necess\u00e1ria e validar a solu\u00e7\u00e3o apresentada.<\/span><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para realizar esta demonstra\u00e7\u00e3o pr\u00e1tica vamos executar as seguintes etapas:<\/span><\/p>\n<p style=\"text-align: justify;\"><strong><span style=\"font-size: 12pt;\">1) Configurar o banco para usar o pacote DBMS_TRACE<\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">2) Criar os objetos para a demonstra\u00e7\u00e3o <\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">3) Executar a procedure habilitando o trace<\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">4) Analisar as informa\u00e7\u00f5es geradas no trace<\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">5) Aplicar melhoria no banco<\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">6) Executar a procedure novamente habilitando o trace<\/span><\/strong><br \/>\n<strong><span style=\"font-size: 12pt;\">7) Analisar as informa\u00e7\u00f5es geradas no trace ap\u00f3s melhoria<\/span><\/strong><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">1) Configurar o banco para usar o pacote DBMS_TRACE<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Nesta etapa vamos executar o script TRACETAB.sql que esta dispon\u00edvel no diret\u00f3rio HOME do banco, para criar os objetos necess\u00e1rios na utiliza\u00e7\u00e3o do pacote DBMS_TRACE.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"br0\">&#91;<\/span>oracle<span class=\"sy0\">@<\/span>odbsrv11 ~<span class=\"br0\">&#93;<\/span>$ sqlplus <span class=\"sy0\">\/<\/span> <span class=\"kw1\">as<\/span> sysdba<br \/>\n<br \/>\nSQL<span class=\"sy0\">*<\/span>Plus<span class=\"sy0\">:<\/span> Release 11<span class=\"sy0\">.<\/span>2<span class=\"sy0\">.<\/span>0<span class=\"sy0\">.<\/span>4<span class=\"sy0\">.<\/span>0 Production on Mon Jul <span class=\"nu0\">15<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">05<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">19<\/span> <span class=\"nu0\">2020<\/span><br \/>\n<br \/>\nCopyright <span class=\"br0\">&#40;<\/span>c<span class=\"br0\">&#41;<\/span> <span class=\"nu0\">1982<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">2013<\/span><span class=\"sy0\">,<\/span> Oracle<span class=\"sy0\">.<\/span> &nbsp;All rights reserved<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nConnected to<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 \/>\nWith the Partitioning<span class=\"sy0\">,<\/span> Real Application Clusters<span class=\"sy0\">,<\/span> Automatic Storage Management<span class=\"sy0\">,<\/span> OLAP<span class=\"sy0\">,<\/span><br \/>\nData Mining and Real Application Testing options<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">@<\/span>?<span class=\"sy0\">\/<\/span>rdbms<span class=\"sy0\">\/<\/span>admin<span class=\"sy0\">\/<\/span>tracetab<span class=\"sy0\">.<\/span>sql<br \/>\n<br \/>\nTable dropped<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nTable dropped<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nSequence dropped<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nTable created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nComment created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nTable created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nComment created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\n<br \/>\nSequence created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant select on PLSQL_TRACE_EVENTS to <span class=\"kw2\">public<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant select on PLSQL_TRACE_RUNS to <span class=\"kw2\">public<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> grant execute on DBMS_TRACE to SH<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nGrant succeeded<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> create <span class=\"kw2\">public<\/span> synonym PLSQL_TRACE_RUNS <span class=\"kw1\">for<\/span> SYS<span class=\"sy0\">.<\/span>PLSQL_TRACE_RUNS<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSynonym created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> create <span class=\"kw2\">public<\/span> synonym PLSQL_TRACE_EVENTS <span class=\"kw1\">for<\/span> SYS<span class=\"sy0\">.<\/span>PLSQL_TRACE_EVENTS<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSynonym created<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><br \/>\ncol OWNER <span class=\"kw1\">for<\/span> a16<span class=\"sy0\">;<\/span><br \/>\ncol OBJECT_NAME <span class=\"kw1\">for<\/span> a30<span class=\"sy0\">;<\/span><br \/>\ncol OBJECT_TYPE <span class=\"kw1\">for<\/span> a30<span class=\"sy0\">;<\/span><br \/>\nSELECT owner<span class=\"sy0\">,<\/span> object_name<span class=\"sy0\">,<\/span> object_type<br \/>\n&nbsp; FROM dba_objects<br \/>\n&nbsp;WHERE object_name like <span class=\"st_h\">'PLSQL_TRACE%'<\/span><br \/>\n&nbsp;ORDER by <span class=\"nu0\">2<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><br \/>\nSQL<span class=\"sy0\">&gt;<\/span> SQL<span class=\"sy0\">&gt;<\/span> SQL<span class=\"sy0\">&gt;<\/span> SQL<span class=\"sy0\">&gt;<\/span> &nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;<span class=\"nu0\">3<\/span> &nbsp; &nbsp;<span class=\"nu0\">4<\/span><br \/>\nOWNER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OBJECT_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OBJECT_TYPE<br \/>\n<span class=\"sy0\">----------------<\/span> <span class=\"sy0\">------------------------------<\/span> <span class=\"sy0\">------------------------------<\/span><br \/>\n<span class=\"kw2\">PUBLIC<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PLSQL_TRACE_EVENTS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SYNONYM<br \/>\nSYS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PLSQL_TRACE_EVENTS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TABLE<br \/>\nSYS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PLSQL_TRACE_RUNNUMBER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SEQUENCE<br \/>\n<span class=\"kw2\">PUBLIC<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PLSQL_TRACE_RUNS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SYNONYM<br \/>\nSYS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PLSQL_TRACE_RUNS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TABLE<br \/>\n<br \/>\nSQL<span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Obs: Foi atribu\u00eddo o grant de EXECUTE no pacote DBMS_TRACE para o owner SH, pois vamos utilizar este usu\u00e1rio em nossa simula\u00e7\u00e3o.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">2) Criar os objetos para a demonstra\u00e7\u00e3o<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Agora vamos criar os objetos para nossa demonstra\u00e7\u00e3o, uma tabela e uma procedure no schema SH.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/><\/div><\/td><td><div class=\"php codecolorer\">NOT CONNECTED <span class=\"sy0\">&gt;<\/span> conn sh<span class=\"sy0\">\/<\/span>sh<span class=\"sy0\">@<\/span>lab11<br \/>\nConnected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter session set workarea_size_policy<span class=\"sy0\">=<\/span>MANUAL<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 \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter session set sort_area_size<span class=\"sy0\">=<\/span><span class=\"nu0\">2000000000<\/span><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 \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> create table dbtw065 <span class=\"kw1\">as<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; select <span class=\"st_h\">'DBTimeWizard - Performance and Tuning'<\/span> <span class=\"kw1\">as<\/span> produto<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span><span class=\"nu0\">5<\/span><span class=\"br0\">&#41;<\/span> &nbsp; &nbsp;<span class=\"kw1\">as<\/span> codigo<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span><span class=\"nu0\">1000<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">as<\/span> cliente_id <span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/round\"><span class=\"kw3\">round<\/span><\/a><span class=\"br0\">&#40;<\/span>dbms_random<span class=\"sy0\">.<\/span>value<span class=\"br0\">&#40;<\/span><span class=\"nu0\">10000<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"kw1\">as<\/span> postal_id<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">5000<\/span> <span class=\"kw1\">as<\/span> total_vendas<span class=\"sy0\">,<\/span><br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;trunc<span class=\"br0\">&#40;<\/span>sysdate <span class=\"sy0\">-<\/span> <span class=\"nu0\">9999<\/span> <span class=\"sy0\">+<\/span> mod<span class=\"br0\">&#40;<\/span>rownum<span class=\"sy0\">,<\/span><span class=\"nu0\">10000<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">as<\/span> data_venda<br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; &nbsp; from dual connect by level<span class=\"sy0\">&lt;=<\/span><span class=\"nu19\">2e7<\/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\">03<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">48.77<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter table dbtw065 nologging<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTable 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.15<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> insert <span class=\"coMULTI\">\/*+ append *\/<\/span> into dbtw065 select <span class=\"sy0\">*<\/span> from dbtw065<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"nu0\">20000000<\/span> rows 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\">02<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">11.83<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> commit<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nCommit complete<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.01<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> <a href=\"http:\/\/www.php.net\/exec\"><span class=\"kw3\">exec<\/span><\/a> dbms_stats<span class=\"sy0\">.<\/span>gather_table_stats<span class=\"br0\">&#40;<\/span>ownname<span class=\"sy0\">=&gt;<\/span> USER<span class=\"sy0\">,<\/span> tabname<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'DBTW065'<\/span><span class=\"sy0\">,<\/span> cascade<span class=\"sy0\">=&gt;<\/span> <span class=\"kw4\">true<\/span><span class=\"sy0\">,<\/span> method_opt<span class=\"sy0\">=&gt;<\/span> <span class=\"st_h\">'FOR ALL COLUMNS SIZE SKEWONLY'<\/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\">04<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">44.33<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter table dbtw065 logging<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nTable 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.03<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> CREATE OR REPLACE PROCEDURE dbtw065_prc<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp;IS<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; contador number<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; CURSOR c_dbtw IS<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.2 *\/<\/span> <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; from dbtw065<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp;where cliente_id <span class=\"sy0\">=<\/span> <span class=\"nu0\">711<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; &nbsp; &nbsp;and postal_id <span class=\"sy0\">=<\/span> <span class=\"nu0\">7348<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp; &nbsp; r_dbtw c_dbtw<span class=\"sy0\">%<\/span>ROWTYPE<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp;BEGIN<br \/>\n&nbsp;<span class=\"nu0\">13<\/span><br \/>\n&nbsp;<span class=\"nu0\">14<\/span> &nbsp; &nbsp; <span class=\"sy0\">--<\/span> Consulta <span class=\"nu0\">1<\/span><br \/>\n&nbsp;<span class=\"nu0\">15<\/span> &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.1 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador &nbsp;from <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp;<span class=\"nu0\">16<\/span> &nbsp; &nbsp; select c<span class=\"sy0\">.<\/span>CUST_ID<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">17<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sum<span class=\"br0\">&#40;<\/span>amount_sold<span class=\"br0\">&#41;<\/span> total_sold<br \/>\n&nbsp;<span class=\"nu0\">18<\/span> &nbsp; &nbsp; &nbsp;from sh<span class=\"sy0\">.<\/span>sales s<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">19<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sh<span class=\"sy0\">.<\/span>customers c<br \/>\n&nbsp;<span class=\"nu0\">20<\/span> &nbsp; &nbsp; where c<span class=\"sy0\">.<\/span>cust_id<span class=\"sy0\">=<\/span>s<span class=\"sy0\">.<\/span>cust_id<br \/>\n&nbsp;<span class=\"nu0\">21<\/span> &nbsp; &nbsp; &nbsp; and cust_state_province <span class=\"sy0\">=<\/span> <span class=\"st_h\">'Barcelona'<\/span><br \/>\n&nbsp;<span class=\"nu0\">22<\/span> &nbsp; &nbsp; group by c<span class=\"sy0\">.<\/span>cust_id<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">23<\/span> &nbsp; &nbsp; where total_sold <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">50000<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">24<\/span><br \/>\n&nbsp;<span class=\"nu0\">25<\/span> &nbsp; &nbsp; <span class=\"sy0\">--<\/span> Consulta <span class=\"nu0\">2<\/span><br \/>\n&nbsp;<span class=\"nu0\">26<\/span> &nbsp; &nbsp; OPEN c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">27<\/span> &nbsp; &nbsp; LOOP<br \/>\n&nbsp;<span class=\"nu0\">28<\/span> &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">29<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<span class=\"sy0\">||<\/span><span class=\"st_h\">' &nbsp;postal_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>postal_id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">31<\/span> &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a> LOOP<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">32<\/span> &nbsp; &nbsp; CLOSE c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">33<\/span><br \/>\n&nbsp;<span class=\"nu0\">34<\/span> &nbsp; &nbsp; <span class=\"sy0\">--<\/span> Consulta <span class=\"nu0\">3<\/span><br \/>\n&nbsp;<span class=\"nu0\">35<\/span> &nbsp; &nbsp; SELECT <span class=\"coMULTI\">\/* dbtw-065.3 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador<br \/>\n&nbsp;<span class=\"nu0\">36<\/span> &nbsp; &nbsp; &nbsp; FROM sh<span class=\"sy0\">.<\/span>customers c<span class=\"sy0\">,<\/span><br \/>\n&nbsp;<span class=\"nu0\">37<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sh<span class=\"sy0\">.<\/span>sales s<br \/>\n&nbsp;<span class=\"nu0\">38<\/span> &nbsp; &nbsp; &nbsp;WHERE c<span class=\"sy0\">.<\/span>cust_id <span class=\"sy0\">=<\/span> s<span class=\"sy0\">.<\/span>cust_id<br \/>\n&nbsp;<span class=\"nu0\">39<\/span> &nbsp; &nbsp; &nbsp; &nbsp;AND c<span class=\"sy0\">.<\/span>country_id <span class=\"sy0\">=<\/span> <span class=\"nu0\">52776<\/span><br \/>\n&nbsp;<span class=\"nu0\">40<\/span> &nbsp; &nbsp; &nbsp; &nbsp;AND s<span class=\"sy0\">.<\/span>channel_id <span class=\"sy0\">=<\/span> <span class=\"nu0\">2<\/span><br \/>\n&nbsp;<span class=\"nu0\">41<\/span> &nbsp; &nbsp; &nbsp; &nbsp;AND <span class=\"br0\">&#40;<\/span>c<span class=\"sy0\">.<\/span>cust_last_name like <span class=\"st_h\">'Ly%'<\/span><br \/>\n&nbsp;<span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; OR c<span class=\"sy0\">.<\/span>cust_last_name like <span class=\"st_h\">'Ry%'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp;<span class=\"nu0\">43<\/span><br \/>\n&nbsp;<span class=\"nu0\">44<\/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\">45<\/span> &nbsp;<span class=\"sy0\">\/<\/span><br \/>\n<br \/>\nProcedure 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.40<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<br \/>\n<strong><span style=\"font-size: 14pt;\">3) Executar a procedure habilitando o trace<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para realizar o trace da procedure precisamos habilita-lo antes da execu\u00e7\u00e3o e desativa-lo ap\u00f3s a execu\u00e7\u00e3o, a seguir vamos executar um bloco PL\/SQL anonimo com esta sequ\u00eancia.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> set &nbsp;serveroutput on size <span class=\"nu0\">9999<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter session set current_schema <span class=\"sy0\">=<\/span> sh<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\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 \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> begin<br \/>\n&nbsp; <span class=\"nu0\">2<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; dbms_trace<span class=\"sy0\">.<\/span>set_plsql_trace<span class=\"br0\">&#40;<\/span>dbms_trace<span class=\"sy0\">.<\/span>trace_all_lines<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; dbtw065_prc<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; dbms_trace<span class=\"sy0\">.<\/span>clear_plsql_trace<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/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 \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/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\">59.89<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">4) Analisar as informa\u00e7\u00f5es geradas no trace<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Consultando a tabela PLSQL_TRACE_EVENTS podemos obter um relat\u00f3rio da execu\u00e7\u00e3o da nossa procedure mostrando os tempos consumidos em cada passo.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col EVENT_TIME &nbsp;<span class=\"kw1\">for<\/span> a24<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col PROC_OWNER <span class=\"kw1\">for<\/span> a16<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col EVENT_COMMENT <span class=\"kw1\">for<\/span> a40<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col CMD<span class=\"sy0\">-<\/span>PROC <span class=\"kw1\">for<\/span> a60<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> select te<span class=\"sy0\">.<\/span>EVENT_SEQ<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span>to_char<span class=\"br0\">&#40;<\/span>te<span class=\"sy0\">.<\/span>EVENT_TIME<span class=\"sy0\">,<\/span><span class=\"st_h\">'dd-mm-yyyy hh24:mi:ss'<\/span><span class=\"br0\">&#41;<\/span> EVENT_TIME<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><a href=\"http:\/\/www.php.net\/substr\"><span class=\"kw3\">SUBSTR<\/span><\/a><span class=\"br0\">&#40;<\/span>src<span class=\"sy0\">.<\/span>text<span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">60<\/span><span class=\"br0\">&#41;<\/span> <span class=\"st0\">&quot;CMD-PROC&quot;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp;from plsql_trace_events te<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp;left <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> <span class=\"br0\">&#40;<\/span>select <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from all_source<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where name <span class=\"sy0\">=<\/span> <span class=\"st_h\">'DBTW065_PRC'<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AND owner <span class=\"sy0\">=<\/span> <span class=\"st_h\">'SH'<\/span><span class=\"br0\">&#41;<\/span> src<br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ON <span class=\"br0\">&#40;<\/span>te<span class=\"sy0\">.<\/span>event_unit_owner<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>owner and te<span class=\"sy0\">.<\/span>event_unit<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>name and te<span class=\"sy0\">.<\/span>event_line<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>line<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp;where te<span class=\"sy0\">.<\/span>runid <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>select <a href=\"http:\/\/www.php.net\/max\"><span class=\"kw3\">max<\/span><\/a><span class=\"br0\">&#40;<\/span>runid<span class=\"br0\">&#41;<\/span> from plsql_trace_runs<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp;and te<span class=\"sy0\">.<\/span>event_unit_owner <span class=\"sy0\">&lt;&gt;<\/span> <span class=\"st_h\">'SYS'<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp; &nbsp;order by <span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp;EVENT_SEQ EVENT_TIME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CMD<span class=\"sy0\">-<\/span>PROC<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">------------------------<\/span> <span class=\"sy0\">------------------------------------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">8<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">40<\/span> &nbsp; &nbsp; &nbsp;PROCEDURE dbtw065_prc<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">9<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">40<\/span> &nbsp; &nbsp; &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.1 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador &nbsp;from <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">10<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; OPEN c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">11<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.2 *\/<\/span> <span class=\"sy0\">*<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">12<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; OPEN c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">13<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">14<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">53<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">42<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">15<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">16<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">45<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">46<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">47<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">01<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">48<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">49<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">71<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">72<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">04<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">73<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">74<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">95<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">96<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">97<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">30<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">98<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">99<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">120<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">121<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">122<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">123<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">38<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">124<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">38<\/span> &nbsp; &nbsp; &nbsp; &nbsp; CLOSE c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">125<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">38<\/span> &nbsp; &nbsp; &nbsp; &nbsp; SELECT <span class=\"coMULTI\">\/* dbtw-065.3 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">126<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">54<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">40<\/span> &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"nu0\">31<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Observe que\u00a0a subtra\u00e7\u00e3o do tempo final da execu\u00e7\u00e3o pelo tempo inicial\u00a0corresponde a 60 segundos que \u00e9 o tempo de execu\u00e7\u00e3o procedure.<\/span><br \/>\n<span style=\"font-size: 12pt;\">O ponto da procedure que consumiu mais tempo foi entre os EVENT_SEQ 72 e 73, neste ponto foram gastos 26 segundos para realizar o comando FETCH no cursor C_DBTW, este cursor executa a consulta DBTW-065.2.<\/span><br \/>\n<span style=\"font-size: 12pt;\">Os outros pontos onde os tempos de dura\u00e7\u00e3o foram elevados na procedure s\u00e3o todos relacionados ao comando FETCH no cursor C_DBTW, portanto\u00a0conclu\u00edmos que\u00a0precisamos otimizar a consulta DBTW-065.2 para baixar o tempo de execu\u00e7\u00e3o da procedure.<\/span><\/p>\n<h2><span style=\"font-size: 14pt;\">5) Aplicar melhoria no banco<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A consulta DBTW-065.2 possui dois filtros na clausula WHERE para as colunas POSTAL_ID e CLIENTE_ID, vamos criar um \u00edndice composto na tabela DBTW065 incluindo estas duas colunas. Se voc\u00ea quiser saber mais sobre \u00edndice composto leia o artigo:\u00a0<strong><a href=\"http:\/\/dbtimewizard.com.br\/blog\/quando-devemos-criar-um-indice-composto\/\" target=\"_blank\">Quando devemos criar um \u00edndice composto?<\/a><\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> create index idx_dbtw065 on dbtw065<span class=\"br0\">&#40;<\/span>postal_id<span class=\"sy0\">,<\/span>cliente_id<span class=\"br0\">&#41;<\/span> parallel <span class=\"nu0\">16<\/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\">24.94<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter index idx_dbtw065 noparallel<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nIndex 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.01<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">6) Executar a procedure novamente habilitando o trace<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> set &nbsp;serveroutput on size <span class=\"nu0\">9999<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> alter session set current_schema <span class=\"sy0\">=<\/span> sh<span class=\"sy0\">;<\/span><br \/>\n<br \/>\nSession altered<span class=\"sy0\">.<\/span><br \/>\n<br \/>\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 \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> begin<br \/>\n&nbsp; <span class=\"nu0\">2<\/span><br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; dbms_trace<span class=\"sy0\">.<\/span>set_plsql_trace<span class=\"br0\">&#40;<\/span>dbms_trace<span class=\"sy0\">.<\/span>trace_all_lines<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp; dbtw065_prc<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp; dbms_trace<span class=\"sy0\">.<\/span>clear_plsql_trace<span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/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 \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/span><br \/>\ncliente_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">711<\/span> &nbsp;postal_id<span class=\"sy0\">:<\/span> <span class=\"nu0\">7348<\/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\">04.46<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Observando o tempo de execu\u00e7\u00e3o da procedure podemos verificar que houve uma melhora significativa, o tempo de execu\u00e7\u00e3o da procedure caiu de 60 segundos para 4 segundos e 46 cent\u00e9simos de segundo. Houve uma redu\u00e7\u00e3o de 92,5% no tempo de execu\u00e7\u00e3o da procedure. <\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 14pt;\">7) Analisar as informa\u00e7\u00f5es geradas no trace ap\u00f3s melhoria<\/span><\/h2>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:100%;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> set lines <span class=\"nu0\">300<\/span> pages <span class=\"nu0\">100<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col EVENT_TIME &nbsp;<span class=\"kw1\">for<\/span> a24<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col PROC_OWNER <span class=\"kw1\">for<\/span> a16<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col EVENT_COMMENT <span class=\"kw1\">for<\/span> a40<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> col CMD<span class=\"sy0\">-<\/span>PROC <span class=\"kw1\">for<\/span> a60<span class=\"sy0\">;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> select te<span class=\"sy0\">.<\/span>EVENT_SEQ<br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span>to_char<span class=\"br0\">&#40;<\/span>te<span class=\"sy0\">.<\/span>EVENT_TIME<span class=\"sy0\">,<\/span><span class=\"st_h\">'dd-mm-yyyy hh24:mi:ss'<\/span><span class=\"br0\">&#41;<\/span> EVENT_TIME<br \/>\n&nbsp; <span class=\"nu0\">3<\/span> &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">,<\/span><a href=\"http:\/\/www.php.net\/substr\"><span class=\"kw3\">SUBSTR<\/span><\/a><span class=\"br0\">&#40;<\/span>src<span class=\"sy0\">.<\/span>text<span class=\"sy0\">,<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">60<\/span><span class=\"br0\">&#41;<\/span> <span class=\"st0\">&quot;CMD-PROC&quot;<\/span><br \/>\n&nbsp; <span class=\"nu0\">4<\/span> &nbsp; &nbsp;from plsql_trace_events te<br \/>\n&nbsp; <span class=\"nu0\">5<\/span> &nbsp; &nbsp;left <a href=\"http:\/\/www.php.net\/join\"><span class=\"kw3\">JOIN<\/span><\/a> <span class=\"br0\">&#40;<\/span>select <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">6<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from all_source<br \/>\n&nbsp; <span class=\"nu0\">7<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where name <span class=\"sy0\">=<\/span> <span class=\"st_h\">'DBTW065_PRC'<\/span><br \/>\n&nbsp; <span class=\"nu0\">8<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AND owner <span class=\"sy0\">=<\/span> <span class=\"st_h\">'SH'<\/span><span class=\"br0\">&#41;<\/span> src<br \/>\n&nbsp; <span class=\"nu0\">9<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ON <span class=\"br0\">&#40;<\/span>te<span class=\"sy0\">.<\/span>event_unit_owner<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>owner and te<span class=\"sy0\">.<\/span>event_unit<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>name and te<span class=\"sy0\">.<\/span>event_line<span class=\"sy0\">=<\/span>src<span class=\"sy0\">.<\/span>line<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">10<\/span> &nbsp; &nbsp;where te<span class=\"sy0\">.<\/span>runid <span class=\"sy0\">=<\/span> <span class=\"br0\">&#40;<\/span>select <a href=\"http:\/\/www.php.net\/max\"><span class=\"kw3\">max<\/span><\/a><span class=\"br0\">&#40;<\/span>runid<span class=\"br0\">&#41;<\/span> from plsql_trace_runs<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp;<span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp;and te<span class=\"sy0\">.<\/span>event_unit_owner <span class=\"sy0\">&lt;&gt;<\/span> <span class=\"st_h\">'SYS'<\/span><br \/>\n&nbsp;<span class=\"nu0\">12<\/span> &nbsp; &nbsp;order by <span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp;EVENT_SEQ EVENT_TIME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CMD<span class=\"sy0\">-<\/span>PROC<br \/>\n<span class=\"sy0\">----------<\/span> <span class=\"sy0\">------------------------<\/span> <span class=\"sy0\">------------------------------------------------------------<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">7<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp;PROCEDURE dbtw065_prc<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">8<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">11<\/span> &nbsp; &nbsp; &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.1 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador &nbsp;from <span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">9<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; OPEN c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">10<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; select <span class=\"coMULTI\">\/* dbtw-065.2 *\/<\/span> <span class=\"sy0\">*<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">11<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; OPEN c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">12<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">13<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">14<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">15<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">44<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">45<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">46<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">47<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">48<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">69<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">70<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">71<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">72<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">73<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">94<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">95<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">96<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">97<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">98<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">119<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dbms_output<span class=\"sy0\">.<\/span>put_line<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'cliente_id: '<\/span><span class=\"sy0\">||<\/span>r_dbtw<span class=\"sy0\">.<\/span>cliente_id<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">120<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; LOOP<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">121<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FETCH &nbsp;c_dbtw &nbsp;INTO r_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">122<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">EXIT<\/span><\/a> WHEN c_dbtw<span class=\"sy0\">%<\/span>NOTFOUND<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">123<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; CLOSE c_dbtw<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">124<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">13<\/span> &nbsp; &nbsp; &nbsp; &nbsp; SELECT <span class=\"coMULTI\">\/* dbtw-065.3 *\/<\/span> <a href=\"http:\/\/www.php.net\/count\"><span class=\"kw3\">count<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span> into contador<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">125<\/span> <span class=\"nu0\">15<\/span><span class=\"sy0\">-<\/span><span class=\"nu8\">07<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">2020<\/span> <span class=\"nu0\">10<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">59<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">15<\/span> &nbsp; &nbsp; &nbsp;<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">END<\/span><\/a><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"nu0\">31<\/span> rows selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Verificando o relat\u00f3rio gerado pela consulta na tabela PLSQL_TRACE_EVENTS, constatamos que todas as chamadas do comando FETCH foram executadas em menos de 1 segundo e os quatro segundos gastos na execu\u00e7\u00e3o da procedure foram consumidos pelas outras duas consultas que faziam parte da procedure.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Refer\u00eancias<\/span><\/h2>\n<p><strong><span style=\"font-size: 12pt;\"><a href=\"https:\/\/docs.oracle.com\/cd\/E18283_01\/appdev.112\/e16760\/d_trace.htm\" target=\"_blank\">https:\/\/docs.oracle.com\/cd\/E18283_01\/appdev.112\/<\/a><\/span><\/strong><\/p>\n<p>&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n<a href=\"http:\/\/dbtimewizard.com.br\/treinamento\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1255\" src=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2018\/10\/promo_cur02.jpg\" alt=\"Promo-D75L\" width=\"330\" height=\"242\" \/><\/a><\/p>\n<p><a href=\"https:\/\/youtu.be\/l6OphhTle9I\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1215\" src=\"http:\/\/dbtimewizard.com.br\/wp-content\/uploads\/2018\/01\/video-02-300x168.jpg\" alt=\"video-02\" width=\"330\" height=\"242\" \/><\/a><br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Durante o desenvolvimento ou altera\u00e7\u00e3o de um c\u00f3digo PL\/SQL eventualmente o desempenho ou tempo de execu\u00e7\u00e3o deste c\u00f3digo pode ser insatisfat\u00f3rio, dependendo do tamanho c\u00f3digo e de quantas instru\u00e7\u00f5es SQL existem nele pode haver certa dificuldade para identificar qual ou quais instru\u00e7\u00f5es SQL est\u00e3o causando a perda de desempenho, para ajudar a identificar as instru\u00e7\u00f5es do c\u00f3digo que est\u00e3o com<\/p>\n","protected":false},"author":2,"featured_media":2184,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[211],"tags":[236,82,10,239,209,237,238],"class_list":["post-2183","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plsql","tag-dbms_trace","tag-optimizer","tag-otimizador","tag-otimizar-plsql","tag-plsql-tuning","tag-plsql_trace_events","tag-plsql_trace_runs"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/2183","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=2183"}],"version-history":[{"count":20,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/2183\/revisions"}],"predecessor-version":[{"id":2208,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/2183\/revisions\/2208"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/2184"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2183"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}