{"id":734,"date":"2016-05-15T23:41:29","date_gmt":"2016-05-16T02:41:29","guid":{"rendered":"http:\/\/dbtimewizard.com.br\/blog\/?p=734"},"modified":"2019-11-11T18:57:11","modified_gmt":"2019-11-11T21:57:11","slug":"veja-como-a-rede-pode-impactar-na-performance-do-banco","status":"publish","type":"post","link":"http:\/\/dbtimewizard.com.br\/blog\/veja-como-a-rede-pode-impactar-na-performance-do-banco\/","title":{"rendered":"Veja como a rede pode impactar na Performance do Banco"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Existem situa\u00e7\u00f5es em que os usu\u00e1rios de um sistema reclamam do tempo de resposta de um determinado relat\u00f3rio e ao analisarmos no banco as consultas que geram esse relat\u00f3rio, verificamos que o tempo de reposta do banco esta muito abaixo do tempo informado pelo usu\u00e1rio. A pergunta que surge imediatamente \u00e9: Onde esta essa diferen\u00e7a de tempo? a resposta que nos vem a mente \u00e9: no tempo de rede.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Mas se analisarmos os gr\u00e1ficos de monitoramento da rede, na maioria da vezes, descobrimos que o tr\u00e1fego de rede esta baixo e aparentemente ficamos sem resposta para a nossa pergunta.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Neste artigo vamos demonstrar de forma pr\u00e1tica como a transfer\u00eancia de dados pela rede pode impactar o tempo de resposta dos usu\u00e1rios mesmo quando o tr\u00e1fego de rede esta baixo e como podemos resolver este problema.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Conceito de transporte de dados pela rede<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A transfer\u00eancia de dados entre dois locais em uma rede s\u00e3o realizadas de forma fragmentada atrav\u00e9s de pacotes que trafegam de uma localidade para outra. No entanto, os pacotes devem passar atrav\u00e9s de roteadores que direcionam os pacotes para seus destinos finais. O tempo gasto na passagem pelos roteadores \u00e9 geralmente muito maior do que o tempo gasto na viagem entre dois pontos do cabo de rede. Al\u00e9m disso, se houver uma demanda maior de pacotes do que a capacidade de processamento imediata do roteador, os pacotes ser\u00e3o enfileirados. Em casos extremos, pode haver perda de pacotes, pois a fila excedeu a capacidade de armazenamento na memoria do roteador e nesses casos os pacotes precisam ser reenviados.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Consequentemente, se o n\u00famero de pacotes enviados atrav\u00e9s da rede \u00e9 excessivo, o roteador vai come\u00e7ar a enfileirar esses pacotes e a lat\u00eancia da rede (tempo necess\u00e1rio para enviar um pacote da origem para o destino) vai aumentar. Podemos chamar essa situa\u00e7\u00e3o de conten\u00e7\u00e3o de rede. O n\u00famero m\u00e1ximo de pacotes que podem ser enviados de um ponto a outro da rede \u00e9 conhecido como largura de banda da rede.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Tomando como base tudo que foi dito at\u00e9 agora, fica claro que, para reduzir a conten\u00e7\u00e3o de rede temos duas op\u00e7\u00f5es:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">1) Aumentar a largura de banda da rede;<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">2) Reduzir o n\u00famero de pacotes enviados atrav\u00e9s da rede.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">O aumento da largura de banda da rede \u00e9 um tema complexo, mas reduzir o numero de pacotes que trafegam na rede pode ser realizado de forma simples e vamos ver neste artigo como podemos fazer isso e qual ser\u00e1 o ganho de performance.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Simula\u00e7\u00e3o do envio de dados pela rede<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para realizar a simula\u00e7\u00e3o de uma aplica\u00e7\u00e3o solicitando e recebendo informa\u00e7\u00f5es de uma Banco de dados Oracle, vamos utilizar um programa Java bem simples, mas esse conceito pode ser aplicado em outras linguagens. Esse programa vai enviar uma consulta a partir de uma esta\u00e7\u00e3o Windows para um banco de dados Oracle 11.2.0.4 em um servidor Linux, utilizando um &#8220;Array size&#8221; padr\u00e3o da linguagem Java que s\u00e3o 10 linhas para cada pacote, em seguida vamos alterar no programa o &#8220;Array size&#8221; para 100 linhas e analisar o resultados em termos de performance.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Programa Java utilizado no simula\u00e7\u00e3o<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">A seguir temos o c\u00f3digo fonte do programa Java que vamos utilizar na nossa simula\u00e7\u00e3o, na linha 39 temos a instru\u00e7\u00e3o &#8220;stmt.setFetchSize(100);&#8221; que determina a quantidade de linhas que o banco de dados vai enviar em cada pacote pela rede (Arraysize). Na primeira execu\u00e7\u00e3o esta linha vai ficar como coment\u00e1rio e o Java vai utilizar o padr\u00e3o &#8220;FetchSize&#8221; que s\u00e3o 10 linhas. Na segunda execu\u00e7\u00e3o vamos utilizar a instru\u00e7\u00e3o e o &#8220;FetchSize&#8221; ser\u00e1 definido como 100.<\/span><\/p>\n<p>&nbsp;<\/p>\n<div class=\"codecolorer-container php default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;width:800px;height:520px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/><\/div><\/td><td><div class=\"php codecolorer\">import java<span class=\"sy0\">.<\/span>sql<span class=\"sy0\">.*;<\/span><br \/>\nimport java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.*;<\/span><br \/>\nimport java<span class=\"sy0\">.<\/span>text<span class=\"sy0\">.<\/span>SimpleDateFormat<span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"kw2\">public<\/span> <span class=\"kw2\">class<\/span> OracleJDBC <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; <span class=\"kw2\">private<\/span> java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">Date<\/span><\/a> startingDate <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; <span class=\"kw2\">private<\/span> java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">Date<\/span><\/a> endingDate <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<br \/>\n&nbsp; <span class=\"kw2\">public<\/span> static void main<span class=\"br0\">&#40;<\/span>String<span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> argv<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;-------- Oracle JDBC Query Test ------------&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; Connection connection <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; Calendar sd <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> GregorianCalendar<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; Calendar ed <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> GregorianCalendar<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; try <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw2\">Class<\/span><span class=\"sy0\">.<\/span>forName<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;oracle.jdbc.driver.OracleDriver&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> catch <span class=\"br0\">&#40;<\/span>ClassNotFoundException e<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Where is your Oracle JDBC Driver?&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; e<span class=\"sy0\">.<\/span>printStackTrace<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Oracle JDBC Driver Registered!&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<br \/>\n&nbsp; &nbsp; try <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; connection <span class=\"sy0\">=<\/span> DriverManager<span class=\"sy0\">.<\/span>getConnection<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;jdbc:oracle:thin:@odbsrv11:1521:LAB11&quot;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&quot;appuser&quot;<\/span><span class=\"sy0\">,<\/span><span class=\"st0\">&quot;oracle2015&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Statement stmt <span class=\"sy0\">=<\/span> connection<span class=\"sy0\">.<\/span>createStatement<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"coMULTI\">\/* stmt.setFetchSize(100); *\/<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String alterQuery <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;ALTER SESSION SET statistics_level=ALL&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; int result <span class=\"sy0\">=<\/span> stmt<span class=\"sy0\">.<\/span>executeUpdate<span class=\"br0\">&#40;<\/span>alterQuery<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SimpleDateFormat dateFormat <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> SimpleDateFormat<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;yyyy\/MM\/dd HH:mm:ss&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">Date<\/span><\/a> <a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">Date<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Envio da consulta ao banco Oracle: &quot;<\/span><span class=\"sy0\">+<\/span>dateFormat<span class=\"sy0\">.<\/span>format<span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; sd<span class=\"sy0\">.<\/span>setTime<span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; ResultSet rset <span class=\"sy0\">=<\/span> stmt<span class=\"sy0\">.<\/span>executeQuery<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;select \/* dbtw001 *\/ OBJECT_NAME, OBJECT_TYPE, OWNER, STATUS from DBTW_OBJECTS&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span>rset<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/next\"><span class=\"kw3\">next<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;OBJECT_NAME: &quot;<\/span><span class=\"sy0\">+<\/span>rset<span class=\"sy0\">.<\/span>getString<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;OBJECT_NAME&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">+<\/span><span class=\"st0\">&quot; &nbsp;OBJECT_TYPE: &quot;<\/span><span class=\"sy0\">+<\/span>rset<span class=\"sy0\">.<\/span>getString<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;OBJECT_TYPE&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">+<\/span><span class=\"st0\">&quot; &nbsp;OWNER: &quot;<\/span><span class=\"sy0\">+<\/span>rset<span class=\"sy0\">.<\/span>getString<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;OWNER&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">+<\/span><span class=\"st0\">&quot; &nbsp;STATUS: &quot;<\/span><span class=\"sy0\">+<\/span>rset<span class=\"sy0\">.<\/span>getString<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;STATUS&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> java<span class=\"sy0\">.<\/span>util<span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">Date<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ed<span class=\"sy0\">.<\/span>setTime<span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int resultm <span class=\"sy0\">=<\/span> ed<span class=\"sy0\">.<\/span>get<span class=\"br0\">&#40;<\/span>Calendar<span class=\"sy0\">.<\/span>MINUTE<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">-<\/span> sd<span class=\"sy0\">.<\/span>get<span class=\"br0\">&#40;<\/span>Calendar<span class=\"sy0\">.<\/span>MINUTE<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int results <span class=\"sy0\">=<\/span> ed<span class=\"sy0\">.<\/span>get<span class=\"br0\">&#40;<\/span>Calendar<span class=\"sy0\">.<\/span>SECOND<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">-<\/span> sd<span class=\"sy0\">.<\/span>get<span class=\"br0\">&#40;<\/span>Calendar<span class=\"sy0\">.<\/span>SECOND<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>results <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; results <span class=\"sy0\">=<\/span> results <span class=\"sy0\">+<\/span> <span class=\"nu0\">60<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>resultm <span class=\"sy0\">&lt;<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; resultm <span class=\"sy0\">=<\/span> resultm <span class=\"sy0\">+<\/span> <span class=\"nu0\">60<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Fim do retorno de dados do banco Oracle: &quot;<\/span><span class=\"sy0\">+<\/span>dateFormat<span class=\"sy0\">.<\/span>format<span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/date\"><span class=\"kw3\">date<\/span><\/a><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Tempo de dura\u00e7\u00e3o em MM:SS: &quot;<\/span><span class=\"sy0\">+<\/span>resultm<span class=\"sy0\">+<\/span><span class=\"st0\">&quot;:&quot;<\/span><span class=\"sy0\">+<\/span>results<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; stmt<span class=\"sy0\">.<\/span>close<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> catch <span class=\"br0\">&#40;<\/span>SQLException e<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Connection Failed! Check output console&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; e<span class=\"sy0\">.<\/span>printStackTrace<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>connection <span class=\"sy0\">!=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;End of program&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/system\"><span class=\"kw3\">System<\/span><\/a><span class=\"sy0\">.<\/span>out<span class=\"sy0\">.<\/span>println<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Failed to make connection!&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n&nbsp; <span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Primeira execu\u00e7\u00e3o do programa<\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Na primeira execu\u00e7\u00e3o do programa como j\u00e1 foi dito ser\u00e1\u00a0utilizado um FetchSize=10, a seguir podemos verificar as ultimas linhas da console de sa\u00edda das mensagens do programa:<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">OBJECT_NAME<span class=\"sy0\">:<\/span> DESENV_HCL &nbsp;OBJECT_TYPE<span class=\"sy0\">:<\/span> DATABASE <a href=\"http:\/\/www.php.net\/link\"><span class=\"kw3\">LINK<\/span><\/a> &nbsp;OWNER<span class=\"sy0\">:<\/span> USERTST &nbsp;STATUS<span class=\"sy0\">:<\/span> VALID<br \/>\nFim <span class=\"kw1\">do<\/span> retorno de dados <span class=\"kw1\">do<\/span> banco Oracle<span class=\"sy0\">:<\/span> <span class=\"nu0\">2016<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">15<\/span> <span class=\"nu0\">23<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">35<\/span><br \/>\nTempo de dura\u00e7\u00e3o em MM<span class=\"sy0\">:<\/span>SS<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">14<\/span><br \/>\n<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">End<\/span><\/a> of program<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Como podemos constatar na pen\u00faltima linha, o tempo necess\u00e1rios para transferir todas as linhas solicitadas pelo programa foi 1minuto e 14 segundos.<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <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\">'%dbtw001%'<\/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 \/>\n7xjhqvcz6b8y8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> row selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">--------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;7xjhqvcz6b8y8<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* dbtw001 *\/<\/span> OBJECT_NAME<span class=\"sy0\">,<\/span> OBJECT_TYPE<span class=\"sy0\">,<\/span> OWNER<span class=\"sy0\">,<\/span> STATUS from<br \/>\nDBTW_OBJECTS<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\">3768306837<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">476<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;120K<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.13<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">13600<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW_OBJECTS <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;115K<span class=\"sy0\">|<\/span> &nbsp; &nbsp;10M<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">476<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">06<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;120K<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.13<\/span> <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">13600<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nNote<br \/>\n<span class=\"sy0\">-----<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">-<\/span> dynamic sampling used <span class=\"kw1\">for<\/span> this statement <span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">=<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Observando o plano de execu\u00e7\u00e3o extra\u00eddo da base, verificamos que a consulta foi executada em 13 cent\u00e9simos de segundo e foram lidos 13600 Buffers.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Segunda execu\u00e7\u00e3o do programa<\/span><\/h3>\n<p style=\"text-align: justify;\">Agora vamos executar o programa Java com\u00a0a instru\u00e7\u00e3o &#8220;stmt.setFetchSize(100);&#8221;, ou seja o banco de dados vai devolver pela rede para o programa Java 100 linhas em cada pacote, dessa forma conseguiremos reduzir a quantidade de pacotes necess\u00e1rios para transportar os dados e consequentemente vamos ter uma redu\u00e7\u00e3o no tempo total dessa\u00a0tarefa:<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">OBJECT_NAME<span class=\"sy0\">:<\/span> DESENV_HCL &nbsp;OBJECT_TYPE<span class=\"sy0\">:<\/span> DATABASE <a href=\"http:\/\/www.php.net\/link\"><span class=\"kw3\">LINK<\/span><\/a> &nbsp;OWNER<span class=\"sy0\">:<\/span> USERTST &nbsp;STATUS<span class=\"sy0\">:<\/span> VALID<br \/>\nFim <span class=\"kw1\">do<\/span> retorno de dados <span class=\"kw1\">do<\/span> banco Oracle<span class=\"sy0\">:<\/span> <span class=\"nu0\">2016<\/span><span class=\"sy0\">\/<\/span><span class=\"nu8\">05<\/span><span class=\"sy0\">\/<\/span><span class=\"nu0\">15<\/span> <span class=\"nu0\">23<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">03<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">45<\/span><br \/>\nTempo de dura\u00e7\u00e3o em MM<span class=\"sy0\">:<\/span>SS<span class=\"sy0\">:<\/span> <span class=\"nu0\">0<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">31<\/span><br \/>\n<a href=\"http:\/\/www.php.net\/end\"><span class=\"kw3\">End<\/span><\/a> of program<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Agora podemos verificar na pen\u00faltima linha da console de mensagens que o tempo total necess\u00e1rio para transferir as 120 mil linhas do banco para o programa Java caiu para 31 segundos.<\/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 \/><\/div><\/td><td><div class=\"php codecolorer\">SQL <span class=\"sy0\">&gt;<\/span> column sql_id new_value m_sql_id<br \/>\nSQL <span class=\"sy0\">&gt;<\/span> column child_number new_value m_child_no<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT sql_id<span class=\"sy0\">,<\/span> child_number<br \/>\n&nbsp; <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\">'%dbtw002%'<\/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 \/>\nb3n5wmj3cjucf &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"nu0\">0<\/span><br \/>\n<br \/>\n<span class=\"nu0\">1<\/span> row selected<span class=\"sy0\">.<\/span><br \/>\n<br \/>\nSQL <span class=\"sy0\">&gt;<\/span><br \/>\nSQL <span class=\"sy0\">&gt;<\/span> SELECT <span class=\"sy0\">*<\/span><br \/>\n&nbsp; <span class=\"nu0\">2<\/span> &nbsp; &nbsp;FROM TABLE <span class=\"br0\">&#40;<\/span>dbms_xplan<span class=\"sy0\">.<\/span>display_cursor <span class=\"br0\">&#40;<\/span><span class=\"st_h\">'&amp;m_sql_id'<\/span><span class=\"sy0\">,&amp;<\/span>m_child_no<span class=\"sy0\">,<\/span><span class=\"st_h\">'typical iostats last'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nPLAN_TABLE_OUTPUT<br \/>\n<span class=\"sy0\">---------------------------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\nSQL_ID &nbsp;b3n5wmj3cjucf<span class=\"sy0\">,<\/span> child number <span class=\"nu0\">0<\/span><br \/>\n<span class=\"sy0\">-------------------------------------<\/span><br \/>\nselect <span class=\"coMULTI\">\/* dbtw002 *\/<\/span> OBJECT_NAME<span class=\"sy0\">,<\/span> OBJECT_TYPE<span class=\"sy0\">,<\/span> OWNER<span class=\"sy0\">,<\/span> STATUS from<br \/>\nDBTW_OBJECTS<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\">3768306837<\/span><br \/>\n<br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> Id &nbsp;<span class=\"sy0\">|<\/span> Operation &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Name &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> Starts <span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span>E<span class=\"sy0\">-<\/span>Bytes<span class=\"sy0\">|<\/span> Cost <span class=\"br0\">&#40;<\/span><span class=\"sy0\">%<\/span>CPU<span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> E<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> A<span class=\"sy0\">-<\/span>Rows <span class=\"sy0\">|<\/span> &nbsp; A<span class=\"sy0\">-<\/span><a href=\"http:\/\/www.php.net\/time\"><span class=\"kw3\">Time<\/span><\/a> &nbsp; <span class=\"sy0\">|<\/span> Buffers <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">0<\/span> <span class=\"sy0\">|<\/span> SELECT STATEMENT &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">476<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy0\">|<\/span> &nbsp; &nbsp;120K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.05<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">2904<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp;TABLE ACCESS FULL<span class=\"sy0\">|<\/span> DBTW_OBJECTS <span class=\"sy0\">|<\/span> &nbsp; &nbsp; &nbsp;<span class=\"nu0\">1<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;115K<span class=\"sy0\">|<\/span> &nbsp; &nbsp;10M<span class=\"sy0\">|<\/span> &nbsp; <span class=\"nu0\">476<\/span> &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">|<\/span> <span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">06<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;120K<span class=\"sy0\">|<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu8\">00<\/span><span class=\"sy0\">:<\/span><span class=\"nu19\">00.05<\/span> <span class=\"sy0\">|<\/span> &nbsp; &nbsp;<span class=\"nu0\">2904<\/span> <span class=\"sy0\">|<\/span><br \/>\n<span class=\"sy0\">----------------------------------------------------------------------------------------------------------------------------<\/span><br \/>\n<br \/>\nNote<br \/>\n<span class=\"sy0\">-----<\/span><br \/>\n&nbsp; &nbsp;<span class=\"sy0\">-<\/span> dynamic sampling used <span class=\"kw1\">for<\/span> this statement <span class=\"br0\">&#40;<\/span>level<span class=\"sy0\">=<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">No plano de execu\u00e7\u00e3o verificamos que o tempo de execu\u00e7\u00e3o da consulta no banco foi 5 cent\u00e9simos de segundo e a quantidade de Buffers lidos caiu para 2.904.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 12pt;\">Para reproduzir essa simula\u00e7\u00e3o utilizando outras linguagens, verifique no quadro abaixo como alterar o &#8220;ArraySize&#8221; de algumas linguagens mais utilizadas no mercado:<\/span><\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/05\/ArraySize.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-738\" src=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/05\/ArraySize.jpg\" alt=\"ArraySize\" width=\"975\" height=\"224\" srcset=\"http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/05\/ArraySize.jpg 975w, http:\/\/dbtimewizard.com.br\/blog\/wp-content\/uploads\/2016\/05\/ArraySize-300x69.jpg 300w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/a><\/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;\">Sempre que estamos realizando uma trabalho de ajuste de performance precisamos ter em mente que existem v\u00e1rios componentes envolvidos nesse processo e o banco de dados \u00e9 apenas um desses componentes, neste artigo mostramos que uma consulta com um tempo de execu\u00e7\u00e3o excelente no banco de dados n\u00e3o estava atendendo as necessidades do usu\u00e1rio pois o tempo de resposta da rede n\u00e3o era satisfat\u00f3rio. Existem outros componentes alem da rede e do banco que podem impactar o tempo de resposta do usu\u00e1rio, mas isso \u00e9 assunto para outro artigo.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-size: 14pt;\">Refer\u00eancias<\/span><\/h2>\n<p><strong><a href=\"https:\/\/webmoli.com\/2009\/02\/01\/jdbc-performance-tuning-with-optimal-fetch-size\/\" target=\"_blank\">https:\/\/webmoli.com\/2009\/02\/01\/jdbc-performance-tuning-with-optimal-fetch-size\/<\/a><\/strong><\/p>\n<p><strong><a href=\"https:\/\/hemantoracledba.blogspot.com.br\/2008\/06\/tuning-very-large-selects-in-sqlplus.html\" target=\"_blank\">https:\/\/hemantoracledba.blogspot.com.br\/2008\/06\/tuning-very-large-selects-in-sqlplus.html<\/a><\/strong><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>Existem situa\u00e7\u00f5es em que os usu\u00e1rios de um sistema reclamam do tempo de resposta de um determinado relat\u00f3rio e ao analisarmos no banco as consultas que geram esse relat\u00f3rio, verificamos que o tempo de reposta do banco esta muito abaixo do tempo informado pelo usu\u00e1rio. A pergunta que surge imediatamente \u00e9: Onde esta essa diferen\u00e7a de tempo? a resposta que<\/p>\n","protected":false},"author":2,"featured_media":735,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[130],"tags":[6,132,42,135,134,131,10,133],"class_list":["post-734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlnet","tag-cbo","tag-contencao-de-rede","tag-cost-base-optimizer","tag-latencia","tag-latency","tag-network-contention","tag-otimizador","tag-sqlnet"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/734","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=734"}],"version-history":[{"count":15,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/734\/revisions"}],"predecessor-version":[{"id":2096,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/posts\/734\/revisions\/2096"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media\/735"}],"wp:attachment":[{"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/media?parent=734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/categories?post=734"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dbtimewizard.com.br\/blog\/wp-json\/wp\/v2\/tags?post=734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}