{"id":2843,"date":"2026-09-12T18:07:18","date_gmt":"2026-09-12T21:07:18","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/"},"modified":"2026-09-12T18:07:18","modified_gmt":"2026-09-12T21:07:18","slug":"aula-23-performance-tuning-explain-plan-awr-e-sql-advisor","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/","title":{"rendered":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor"},"content":{"rendered":"<p>Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso <strong>Oracle SQL \u2014 Do Zero ao Avan\u00e7ado<\/strong>, e o foco central \u00e9 <strong>Performance Tuning<\/strong>. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins, subqueries, fun\u00e7\u00f5es anal\u00edticas, PL\/SQL e a manipular objetos de banco de dados. Agora chegou a hora de tratar um dos temas mais cr\u00edticos e valorizados no mercado de TI: como fazer uma consulta lenta rodar em milissegundos, como diagnosticar gargalos de maneira cient\u00edfica e como usar as ferramentas nativas do Oracle Database para obter recomenda\u00e7\u00f5es automatizadas de otimiza\u00e7\u00e3o.<\/p>\n<p>Em ambientes corporativos, a lentid\u00e3o de uma consulta SQL pode gerar impacto financeiro direto, indisponibilidade de sistemas e sobrecarga de servidores. Profissionais de infraestrutura, seguran\u00e7a da informa\u00e7\u00e3o e administra\u00e7\u00e3o de bancos de dados frequentemente precisam atuar em conjunto para identificar se o problema est\u00e1 em hardware, rede, storage, no pr\u00f3prio SQL ou na configura\u00e7\u00e3o da inst\u00e2ncia. A capacidade de gerar e interpretar um plano de execu\u00e7\u00e3o, analisar relat\u00f3rios <strong>AWR<\/strong> e utilizar o <strong>SQL Tuning Advisor<\/strong> separa um desenvolvedor mediano de um especialista em banco de dados Oracle. Na JRT Technology Solutions, nossos especialistas utilizam diariamente essas t\u00e9cnicas em projetos de migra\u00e7\u00e3o, suporte a ambientes cr\u00edticos e consultoria de performance, justamente porque elas entregam resultados objetivos e mensur\u00e1veis.<\/p>\n<p>Nesta aula avan\u00e7ada, voc\u00ea vai aprender a diagnosticar problemas de desempenho com base em evid\u00eancias, n\u00e3o em suposi\u00e7\u00f5es. Vamos explorar tr\u00eas pilares fundamentais do <strong>Performance Tuning<\/strong>: o <strong>Explain Plan<\/strong>, que revela como o otimizador do Oracle executa uma instru\u00e7\u00e3o SQL; o <strong>AWR<\/strong> (Automatic Workload Repository), que armazena estat\u00edsticas hist\u00f3ricas da carga de trabalho e permite identificar padr\u00f5es de consumo de recursos; e o <strong>SQL Tuning Advisor<\/strong>, que analisa consultas problem\u00e1ticas e sugere corre\u00e7\u00f5es como novos \u00edndices, perfis SQL e ajustes de estat\u00edsticas. Cada ferramenta ser\u00e1 demonstrada com comandos reais e sa\u00eddas esperadas, para que voc\u00ea possa reproduzir os procedimentos em seu pr\u00f3prio ambiente.<\/p>\n<p>Os pr\u00e9-requisitos para acompanhar esta aula incluem acesso a uma inst\u00e2ncia Oracle Database 19c ou 21c com privil\u00e9gios de <strong>SYSDBA<\/strong> ou, no m\u00ednimo, os pap\u00e9is <strong>ADVISOR<\/strong> e <strong>SELECT ANY DICTIONARY<\/strong> para as tarefas administrativas. Voc\u00ea tamb\u00e9m precisar\u00e1 do <strong>SQL*Plus<\/strong> ou <strong>SQLcl<\/strong> e de um schema com objetos de teste. Ao final desta aula, voc\u00ea ser\u00e1 capaz de coletar e interpretar planos de execu\u00e7\u00e3o, gerar snapshots e relat\u00f3rios AWR, executar o SQL Tuning Advisor e aplicar as recomenda\u00e7\u00f5es sugeridas \u2014 tudo isso seguindo um passo a passo completo e verific\u00e1vel.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Compreender o papel do otimizador baseado em custo (<strong>CBO<\/strong>) e a import\u00e2ncia das estat\u00edsticas de objetos no <strong>Performance Tuning<\/strong>.<\/li>\n<li>Gerar e interpretar planos de execu\u00e7\u00e3o com o comando <strong>EXPLAIN PLAN<\/strong> e a fun\u00e7\u00e3o <strong>DBMS_XPLAN.DISPLAY<\/strong>.<\/li>\n<li>Identificar opera\u00e7\u00f5es custosas em um plano de execu\u00e7\u00e3o, como <strong>TABLE ACCESS FULL<\/strong>, <strong>NESTED LOOPS<\/strong> e <strong>HASH JOIN<\/strong>.<\/li>\n<li>Configurar, consultar e gerenciar o <strong>Automatic Workload Repository<\/strong> (AWR), incluindo a cria\u00e7\u00e3o manual de snapshots.<\/li>\n<li>Gerar relat\u00f3rios AWR em formato HTML e interpretar se\u00e7\u00f5es essenciais como <strong>Top SQL<\/strong>, <strong>Wait Events<\/strong> e <strong>Load Profile<\/strong>.<\/li>\n<li>Utilizar o pacote <strong>DBMS_SQLTUNE<\/strong> para criar, executar e obter recomenda\u00e7\u00f5es do <strong>SQL Tuning Advisor<\/strong>.<\/li>\n<li>Verificar a configura\u00e7\u00e3o de todas as ferramentas de <strong>Performance Tuning<\/strong> e solucionar os erros mais comuns em ambientes reais.<\/li>\n<li>Aplicar boas pr\u00e1ticas de otimiza\u00e7\u00e3o e documentar resultados de forma profissional.<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Antes de iniciar os procedimentos pr\u00e1ticos desta aula, \u00e9 necess\u00e1rio ter uma inst\u00e2ncia Oracle Database em execu\u00e7\u00e3o. Em nossos laborat\u00f3rios na JRT Technology Solutions, padronizamos o uso do <strong>Oracle Database 19c Enterprise Edition<\/strong> em sistemas operacionais Linux (Oracle Linux 8 ou Ubuntu 22.04, dependendo do cliente), com o <strong>SQL*Plus<\/strong> devidamente configurado e as vari\u00e1veis de ambiente <strong>ORACLE_HOME<\/strong> e <strong>ORACLE_SID<\/strong> corretamente definidas. Voc\u00ea pode utilizar qualquer edi\u00e7\u00e3o do Oracle Database, desde que os pacotes <strong>DBMS_XPLAN<\/strong>, <strong>DBMS_WORKLOAD_REPOSITORY<\/strong> e <strong>DBMS_SQLTUNE<\/strong> estejam dispon\u00edveis \u2014 o que \u00e9 padr\u00e3o nas vers\u00f5es Enterprise, Standard e Personal.<\/p>\n<p>Para executar os comandos administrativos deste tutorial, voc\u00ea precisar\u00e1 de um usu\u00e1rio com privil\u00e9gios adequados. Recomendamos conectar-se como <strong>SYS<\/strong> com a cl\u00e1usula <strong>AS SYSDBA<\/strong> para as tarefas de configura\u00e7\u00e3o e concess\u00e3o de permiss\u00f5es. Para as demonstra\u00e7\u00f5es de <strong>Performance Tuning<\/strong>, criaremos um usu\u00e1rio chamado <strong>PERF_TUNING<\/strong> com uma tabela de exemplo chamada <strong>VENDAS<\/strong>. Esse usu\u00e1rio receber\u00e1 os pap\u00e9is <strong>CONNECT<\/strong>, <strong>RESOURCE<\/strong> e <strong>ADVISOR<\/strong>, al\u00e9m da permiss\u00e3o <strong>SELECT ANY DICTIONARY<\/strong>, necess\u00e1ria para consultar as vis\u00f5es din\u00e2micas do dicion\u00e1rio de dados usadas pelo AWR e pelo SQL Tuning Advisor.<\/p>\n<p>O primeiro bloco de comandos abaixo realiza a cria\u00e7\u00e3o do usu\u00e1rio, a conex\u00e3o como esse usu\u00e1rio, a cria\u00e7\u00e3o da tabela de exemplo, a inser\u00e7\u00e3o de um milh\u00e3o de linhas de dados sint\u00e9ticos e a coleta de estat\u00edsticas do otimizador. A inser\u00e7\u00e3o utiliza a t\u00e9cnica de <strong>CONNECT BY LEVEL<\/strong> para gerar registros em massa, o que \u00e9 \u00fatil para simular uma carga de trabalho significativa. Se o seu ambiente n\u00e3o tiver espa\u00e7o ou desempenho para um milh\u00e3o de linhas, voc\u00ea pode reduzir o valor para 100.000 sem prejudicar o aprendizado dos conceitos de <strong>Performance Tuning<\/strong>.<\/p>\n<pre><code>-- Conex\u00e3o como SYSDBA para tarefas administrativas\nsqlplus \/ as sysdba\n\n-- Cria\u00e7\u00e3o do usu\u00e1rio de demonstra\u00e7\u00e3o para Performance Tuning\nCREATE USER perf_tuning IDENTIFIED BY \"Senha123\"\nDEFAULT TABLESPACE USERS\nTEMPORARY TABLESPACE TEMP\nQUOTA UNLIMITED ON USERS;\n\n-- Concess\u00e3o de privil\u00e9gios necess\u00e1rios\nGRANT CONNECT, RESOURCE TO perf_tuning;\nGRANT ADVISOR TO perf_tuning;\nGRANT SELECT ANY DICTIONARY TO perf_tuning;\n\n-- Conectar como o usu\u00e1rio de demonstra\u00e7\u00e3o\nCONNECT perf_tuning\/\"Senha123\"\n\n-- Cria\u00e7\u00e3o da tabela de exemplo\nCREATE TABLE vendas (\n    venda_id    NUMBER PRIMARY KEY,\n    cliente_id  NUMBER NOT NULL,\n    produto_id  NUMBER NOT NULL,\n    data_venda  DATE NOT NULL,\n    valor       NUMBER(10,2) NOT NULL,\n    regiao      VARCHAR2(50)\n);\n\n-- Inser\u00e7\u00e3o de 1 milh\u00e3o de linhas de dados sint\u00e9ticos\nINSERT INTO vendas\nSELECT level,\n       MOD(level, 1000) + 1,\n       MOD(level, 500) + 1,\n       TRUNC(SYSDATE) - MOD(level, 365),\n       ROUND(DBMS_RANDOM.VALUE(10, 5000), 2),\n       CASE MOD(level, 4)\n           WHEN 0 THEN 'Norte'\n           WHEN 1 THEN 'Sul'\n           WHEN 2 THEN 'Leste'\n           ELSE 'Oeste'\n       END\nFROM dual\nCONNECT BY level &lt;= 1000000;\n\n-- Confirma\u00e7\u00e3o da transa\u00e7\u00e3o\nCOMMIT;\n\n-- Coleta de estat\u00edsticas do otimizador para a tabela VENDAS\nEXEC DBMS_STATS.GATHER_TABLE_STATS('PERF_TUNING', 'VENDAS');<\/code><\/pre>\n<pre><code class=\"output\">SQL> CREATE USER perf_tuning IDENTIFIED BY \"Senha123\"\n  2  DEFAULT TABLESPACE USERS\n  3  TEMPORARY TABLESPACE TEMP\n  4  QUOTA UNLIMITED ON USERS;\n\nUser created.\n\nSQL> GRANT CONNECT, RESOURCE TO perf_tuning;\n\nGrant succeeded.\n\nSQL> GRANT ADVISOR TO perf_tuning;\n\nGrant succeeded.\n\nSQL> GRANT SELECT ANY DICTIONARY TO perf_tuning;\n\nGrant succeeded.\n\nSQL> CONNECT perf_tuning\/\"Senha123\"\nConnected.\nSQL> CREATE TABLE vendas (\n  2      venda_id    NUMBER PRIMARY KEY,\n  3      cliente_id  NUMBER NOT NULL,\n  4      produto_id  NUMBER NOT NULL,\n  5      data_venda  DATE NOT NULL,\n  6      valor       NUMBER(10,2) NOT NULL,\n  7      regiao      VARCHAR2(50)\n  8  );\n\nTable created.\n\nSQL> INSERT INTO vendas\n  2  SELECT level,\n  3         MOD(level, 1000) + 1,\n  4         MOD(level, 500) + 1,\n  5         TRUNC(SYSDATE) - MOD(level, 365),\n  6         ROUND(DBMS_RANDOM.VALUE(10, 5000), 2),\n  7         CASE MOD(level, 4)\n  8             WHEN 0 THEN 'Norte'\n  9             WHEN 1 THEN 'Sul'\n 10             WHEN 2 THEN 'Leste'\n 11             ELSE 'Oeste'\n 12         END\n 13  FROM dual\n 14  CONNECT BY level &lt;= 1000000;\n\n1000000 rows created.\n\nSQL> COMMIT;\n\nCommit complete.\n\nSQL> EXEC DBMS_STATS.GATHER_TABLE_STATS('PERF_TUNING', 'VENDAS');\n\nPL\/SQL procedure successfully completed.<\/code><\/pre>\n<p>O bloco acima \u00e9 a base para todos os exerc\u00edcios de <strong>Performance Tuning<\/strong> desta aula. Com a tabela <strong>VENDAS<\/strong> populada e as estat\u00edsticas coletadas, o otimizador tem informa\u00e7\u00f5es suficientes para estimar cardinalidades e custos. Observe que a coleta de estat\u00edsticas \u00e9 um passo essencial; sem ela, o Oracle pode escolher planos de execu\u00e7\u00e3o ineficientes, comprometendo a an\u00e1lise de performance. A partir deste ponto, qualquer consulta que envolva a tabela <strong>VENDAS<\/strong> ser\u00e1 avaliada pelo otimizador com base nos metadados estat\u00edsticos armazenados no dicion\u00e1rio de dados.<\/p>\n<h3>Fundamentos de Performance Tuning no Oracle Database<\/h3>\n<p>O <strong>Performance Tuning<\/strong> no Oracle Database n\u00e3o \u00e9 uma atividade isolada, mas sim um processo cont\u00ednuo e sistem\u00e1tico de diagn\u00f3stico, corre\u00e7\u00e3o e monitoramento. O cora\u00e7\u00e3o desse processo \u00e9 o <strong>otimizador baseado em custo<\/strong> (Cost-Based Optimizer, CBO), que avalia diferentes caminhos de acesso aos dados \u2014 como \u00edndices, full table scans, hash joins e nested loops \u2014 e escolhe aquele com menor custo estimado. O custo \u00e9 calculado a partir das estat\u00edsticas dos objetos, dos par\u00e2metros de inicializa\u00e7\u00e3o e das caracter\u00edsticas do hardware, como velocidade de CPU e throughput de I\/O. Entender essa l\u00f3gica \u00e9 fundamental para interpretar qualquer ferramenta de <strong>Performance Tuning<\/strong>.<\/p>\n<p>Quando uma consulta SQL \u00e9 submetida ao banco de dados, ela passa por v\u00e1rias etapas: parsing, otimiza\u00e7\u00e3o, gera\u00e7\u00e3o do plano de execu\u00e7\u00e3o e, finalmente, execu\u00e7\u00e3o. O plano de execu\u00e7\u00e3o \u00e9 o mapa detalhado de como os dados ser\u00e3o acessados, filtrados, ordenados e agregados. O comando <strong>EXPLAIN PLAN<\/strong> exp\u00f5e esse mapa sem executar a instru\u00e7\u00e3o, permitindo uma an\u00e1lise pr\u00e9via e segura. J\u00e1 o <strong>AWR<\/strong> registra informa\u00e7\u00f5es sobre a execu\u00e7\u00e3o real de todas as consultas, incluindo tempo de CPU, esperas de I\/O, leituras l\u00f3gicas e f\u00edsicas, e as armazena em snapshots peri\u00f3dicos. Por fim, o <strong>SQL Tuning Advisor<\/strong> cruza essas informa\u00e7\u00f5es com o hist\u00f3rico de carga e prop\u00f5e melhorias espec\u00edficas para consultas com alto consumo de recursos.<\/p>\n<p>Um dos maiores erros em <strong>Performance Tuning<\/strong> \u00e9 focar apenas em sintaxe SQL, ignorando o impacto do design f\u00edsico do banco de dados. A aus\u00eancia de \u00edndices adequados, estat\u00edsticas desatualizadas, falta de particionamento, uso excessivo de hints e at\u00e9 mesmo par\u00e2metros de mem\u00f3ria mal dimensionados podem degradar drasticamente o desempenho. Por isso, as ferramentas nativas do Oracle devem ser utilizadas em conjunto: o <strong>Explain Plan<\/strong> mostra o que o otimizador planejou; o <strong>AWR<\/strong> mostra o que realmente aconteceu durante um per\u00edodo de carga; e o <strong>SQL Tuning Advisor<\/strong> executa uma an\u00e1lise aprofundada e automatizada, recomendando a corre\u00e7\u00e3o mais adequada.<\/p>\n<p>Em nossos projetos na JRT Technology Solutions, adotamos uma metodologia de tr\u00eas etapas para qualquer demanda de otimiza\u00e7\u00e3o: <strong>1)<\/strong> coleta de evid\u00eancias com AWR e planos de execu\u00e7\u00e3o; <strong>2)<\/strong> an\u00e1lise detalhada com o SQL Tuning Advisor e, quando necess\u00e1rio, an\u00e1lise manual; <strong>3)<\/strong> implementa\u00e7\u00e3o controlada das mudan\u00e7as em um ambiente de homologa\u00e7\u00e3o, seguida de valida\u00e7\u00e3o com testes de carga. Essa abordagem evita os riscos de alterar \u00edndices ou par\u00e2metros diretamente em produ\u00e7\u00e3o sem antes comprovar os ganhos esperados.<\/p>\n<p>Nesta aula, voc\u00ea seguir\u00e1 exatamente esse fluxo de trabalho, mas em um ambiente controlado. Voc\u00ea come\u00e7ar\u00e1 gerando planos de execu\u00e7\u00e3o para uma consulta de agrega\u00e7\u00e3o sobre a tabela <strong>VENDAS<\/strong>, depois coletar\u00e1 snapshots AWR e gerar\u00e1 relat\u00f3rios de carga, e por fim usar\u00e1 o SQL Tuning Advisor para obter recomenda\u00e7\u00f5es autom\u00e1ticas. Cada etapa ser\u00e1 detalhada com comandos, sa\u00eddas e explica\u00e7\u00f5es linha a linha, de modo que voc\u00ea possa aplicar o mesmo racioc\u00ednio em qualquer cen\u00e1rio real de <strong>Performance Tuning<\/strong>.<\/p>\n<h3>Entendendo o Explain Plan no Performance Tuning<\/h3>\n<p>O <strong>Explain Plan<\/strong> \u00e9 a ferramenta mais b\u00e1sica e essencial para iniciar qualquer an\u00e1lise de <strong>Performance Tuning<\/strong> baseada em SQL. Ele mostra, de forma hier\u00e1rquica, as opera\u00e7\u00f5es que o otimizador escolheu para executar uma instru\u00e7\u00e3o, como acessos a tabelas, uso de \u00edndices, joins, agrega\u00e7\u00f5es e ordena\u00e7\u00f5es. O comando que utilizamos \u00e9 <strong>EXPLAIN PLAN FOR<\/strong> seguido da instru\u00e7\u00e3o SQL que desejamos analisar. O resultado n\u00e3o executa a consulta; ele apenas gera o plano no objeto <strong>PLAN_TABLE<\/strong> ou em uma tabela tempor\u00e1ria indicada pelo par\u00e2metro <strong>INTO<\/strong>.<\/p>\n<p>A exibi\u00e7\u00e3o do plano \u00e9 feita por meio da fun\u00e7\u00e3o <strong>DBMS_XPLAN.DISPLAY<\/strong>, que formata a sa\u00edda de maneira leg\u00edvel, incluindo colunas como <strong>Id<\/strong>, <strong>Operation<\/strong>, <strong>Name<\/strong>, <strong>Rows<\/strong>, <strong>Bytes<\/strong>, <strong>Cost (%CPU)<\/strong> e <strong>Time<\/strong>. A coluna <strong>Operation<\/strong> descreve o tipo de opera\u00e7\u00e3o (por exemplo, <strong>TABLE ACCESS FULL<\/strong>, <strong>INDEX RANGE SCAN<\/strong>, <strong>HASH JOIN<\/strong>). A coluna <strong>Rows<\/strong> indica a estimativa de linhas retornadas por aquela opera\u00e7\u00e3o, enquanto <strong>Bytes<\/strong> estima o volume de dados trafegado. O <strong>Cost<\/strong> \u00e9 uma unidade relativa calculada pelo otimizador e serve para comparar planos alternativos, n\u00e3o representando diretamente tempo de execu\u00e7\u00e3o.<\/p>\n<p>Al\u00e9m da interpreta\u00e7\u00e3o visual, \u00e9 importante entender o conceito de <strong>predicado de acesso<\/strong> e <strong>predicado de filtro<\/strong>. O predicado de acesso aparece quando o Oracle utiliza um \u00edndice para localizar diretamente as linhas desejadas, como em <strong>INDEX RANGE SCAN<\/strong> ou <strong>INDEX UNIQUE SCAN<\/strong>. O predicado de filtro aparece quando as linhas s\u00e3o lidas e depois filtradas, o que geralmente indica que o \u00edndice n\u00e3o est\u00e1 sendo totalmente aproveitado ou que a tabela est\u00e1 sendo varrida integralmente. A an\u00e1lise minuciosa desses predicados \u00e9 uma das habilidades mais valorizadas em <strong>Performance Tuning<\/strong>.<\/p>\n<p>Na pr\u00e1tica, o <strong>Explain Plan<\/strong> deve ser gerado para as consultas mais cr\u00edticas do sistema, especialmente aquelas que aparecem no topo dos relat\u00f3rios AWR ou que apresentam lentid\u00e3o percebida pelos usu\u00e1rios. Em conjunto com o comando <strong>DBMS_XPLAN.DISPLAY_AWR<\/strong>, que recupera planos hist\u00f3ricos de execu\u00e7\u00f5es passadas, o DBA pode comparar o plano planejado com o plano realmente executado, identificando mudan\u00e7as de comportamento do otimizador causadas por altera\u00e7\u00f5es de estat\u00edsticas ou par\u00e2metros.<\/p>\n<p>A tabela abaixo resume as colunas mais importantes da sa\u00edda do <strong>EXPLAIN PLAN<\/strong> e o significado de cada uma no contexto de <strong>Performance Tuning<\/strong>:<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%;\">\n<caption>Colunas essenciais da sa\u00edda do Explain Plan<\/caption>\n<thead>\n<tr>\n<th>Coluna<\/th>\n<th>Significado<\/th>\n<th>Relev\u00e2ncia para Performance Tuning<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Id<\/strong><\/td>\n<td>Identificador \u00fanico da opera\u00e7\u00e3o no plano<\/td>\n<td>Usado para referenciar opera\u00e7\u00f5es no predicado de informa\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Operation<\/strong><\/td>\n<td>Tipo de opera\u00e7\u00e3o executada (TABLE ACCESS FULL, INDEX RANGE SCAN, HASH JOIN, etc.)<\/td>\n<td>Indica o m\u00e9todo de acesso e join; opera\u00e7\u00f5es como FULL SCAN geralmente indicam falta de \u00edndice<\/td>\n<\/tr>\n<tr>\n<td><strong>Name<\/strong><\/td>\n<td>Nome do objeto (tabela, \u00edndice, vis\u00e3o) ou da opera\u00e7\u00e3o<\/td>\n<td>Permite mapear qual objeto est\u00e1 sendo acessado de forma ineficiente<\/td>\n<\/tr>\n<tr>\n<td><strong>Rows<\/strong><\/td>\n<td>Estimativa do n\u00famero de linhas retornadas pela opera\u00e7\u00e3o<\/td>\n<td>Erros de estimativa podem levar a escolhas ruins; comparar com linhas reais ajuda a identificar problemas de estat\u00edstica<\/td>\n<\/tr>\n<tr>\n<td><strong>Bytes<\/strong><\/td>\n<td>Estimativa do volume de dados em bytes<\/td>\n<td>Impacta diretamente no custo de I\/O e mem\u00f3ria<\/td>\n<\/tr>\n<tr>\n<td><strong>Cost (%CPU)<\/strong><\/td>\n<td>Custo relativo da opera\u00e7\u00e3o, incluindo percentual de CPU<\/td>\n<td>Utilizado pelo otimizador para escolher o plano; custos altos geralmente merecem aten\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Time<\/strong><\/td>\n<td>Tempo estimado de execu\u00e7\u00e3o para a opera\u00e7\u00e3o<\/td>\n<td>Fornece uma refer\u00eancia de lat\u00eancia esperada<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Com essa base te\u00f3rica, voc\u00ea est\u00e1 pronto para gerar e interpretar planos de execu\u00e7\u00e3o reais. No pr\u00f3ximo t\u00f3pico, montaremos um passo a passo completo, desde a consulta problem\u00e1tica at\u00e9 a leitura detalhada do plano.<\/p>\n<h3>Passo a Passo \u2014 Gerando e Interpretando o Explain Plan<\/h3>\n<p>Vamos agora colocar em pr\u00e1tica a gera\u00e7\u00e3o do <strong>Explain Plan<\/strong> para uma consulta t\u00edpica de relat\u00f3rio gerencial sobre a tabela <strong>VENDAS<\/strong>. A consulta que utilizaremos retorna o total de vendas por produto nos \u00faltimos 30 dias, ordenado do maior para o menor. Essa consulta envolve filtro por data, agrega\u00e7\u00e3o <strong>GROUP BY<\/strong> e ordena\u00e7\u00e3o <strong>ORDER BY<\/strong>, sendo um excelente exemplo para demonstrar opera\u00e7\u00f5es de acesso e processamento.<\/p>\n<p>O procedimento \u00e9 composto por duas etapas principais: primeiro, executar <strong>EXPLAIN PLAN FOR<\/strong> com a instru\u00e7\u00e3o SQL; segundo, consultar a fun\u00e7\u00e3o <strong>DBMS_XPLAN.DISPLAY<\/strong> para visualizar o plano formatado. Antes de executar, certifique-se de estar conectado como o usu\u00e1rio <strong>PERF_TUNING<\/strong>, como demonstrado nos pr\u00e9-requisitos. Caso contr\u00e1rio, a consulta retornar\u00e1 o erro <strong>ORA-00942<\/strong> ou similar, dependendo dos privil\u00e9gios.<\/p>\n<p>Execute os seguintes comandos na ordem indicada:<\/p>\n<ol>\n<li>Abra o <strong>SQL*Plus<\/strong> ou <strong>SQLcl<\/strong> e conecte-se como usu\u00e1rio <strong>PERF_TUNING<\/strong>.<\/li>\n<li>Verifique se a tabela <strong>VENDAS<\/strong> existe e se as estat\u00edsticas foram coletadas recentemente.<\/li>\n<li>Execute o comando <strong>EXPLAIN PLAN FOR<\/strong> com a consulta alvo.<\/li>\n<li>Consulte o plano com <strong>SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);<\/strong>.<\/li>\n<li>Analise a sa\u00edda, prestando aten\u00e7\u00e3o \u00e0s opera\u00e7\u00f5es de acesso, cardinalidades estimadas e custos.<\/li>\n<li>Repita o processo com varia\u00e7\u00f5es da consulta (por exemplo, adicionando um filtro por regi\u00e3o) para comparar os planos.<\/li>\n<\/ol>\n<pre><code>-- Conectar como usu\u00e1rio de demonstra\u00e7\u00e3o\nsqlplus perf_tuning\/\"Senha123\"\n\n-- Gerar o plano de execu\u00e7\u00e3o para a consulta de vendas dos \u00faltimos 30 dias\nEXPLAIN PLAN FOR\nSELECT v.produto_id,\n       SUM(v.valor) AS total_vendas\nFROM vendas v\nWHERE v.data_venda &gt;= TRUNC(SYSDATE) - 30\nGROUP BY v.produto_id\nORDER BY total_vendas DESC;\n\n-- Exibir o plano de execu\u00e7\u00e3o formatado\nSELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);<\/code><\/pre>\n<pre><code class=\"output\">Plan hash value: 4123456789\n\n-----------------------------------------------------------------------------------------------\n| Id  | Operation          | Name   | Rows  | Bytes | Cost (%CPU)| Time     |\n-----------------------------------------------------------------------------------------------\n|   0 | SELECT STATEMENT   |        |   492 | 13776 |   182   (4)| 00:00:01 |\n|   1 |  SORT GROUP BY     |        |   492 | 13776 |   182   (4)| 00:00:01 |\n|*  2 |   TABLE ACCESS FULL| VENDAS | 82192 |  2248K|   180   (4)| 00:00:01 |\n-----------------------------------------------------------------------------------------------\n\nPredicate Information (identified by operation id):\n---------------------------------------------------\n\n   2 - filter(\"V\".\"DATA_VENDA\">=TRUNC(SYSDATE)-30)\n\nNote\n-----\n   - dynamic statistics used: dynamic sampling (level=2)<\/code><\/pre>\n<p>A interpreta\u00e7\u00e3o deste plano \u00e9 direta: a consulta realizou um <strong>TABLE ACCESS FULL<\/strong> na tabela <strong>VENDAS<\/strong>, varrendo todas as linhas para aplicar o filtro de data. Em um ambiente com milh\u00f5es de registros, essa opera\u00e7\u00e3o \u00e9 extremamente custosa. A coluna <strong>Rows<\/strong> indica que o otimizador estimou que 82.192 linhas atendem ao filtro <strong>data_venda<\/strong>, com um custo de 180. Como n\u00e3o h\u00e1 \u00edndice na coluna <strong>data_venda<\/strong>, o Oracle n\u00e3o teve alternativa sen\u00e3o percorrer toda a tabela. Essa \u00e9 uma informa\u00e7\u00e3o valiosa para o <strong>Performance Tuning<\/strong>, pois sugere a cria\u00e7\u00e3o de um \u00edndice sobre a coluna usada no filtro.<\/p>\n<p>Se criarmos um \u00edndice na coluna <strong>data_venda<\/strong>, por exemplo, o otimizador provavelmente escolher\u00e1 um <strong>INDEX RANGE SCAN<\/strong>, reduzindo drasticamente o n\u00famero de blocos lidos e o custo total. O procedimento para criar o \u00edndice e gerar novamente o plano de execu\u00e7\u00e3o \u00e9 o seguinte:<\/p>\n<pre><code>-- Cria\u00e7\u00e3o de \u00edndice na coluna data_venda para otimizar o filtro por per\u00edodo\nCREATE INDEX idx_vendas_data ON vendas(data_venda);\n\n-- Coleta de estat\u00edsticas ap\u00f3s a cria\u00e7\u00e3o do \u00edndice\nEXEC DBMS_STATS.GATHER_TABLE_STATS('PERF_TUNING', 'VENDAS');\n\n-- Gerar novamente o plano de execu\u00e7\u00e3o\nEXPLAIN PLAN FOR\nSELECT v.produto_id,\n       SUM(v.valor) AS total_vendas\nFROM vendas v\nWHERE v.data_venda &gt;= TRUNC(SYSDATE) - 30\nGROUP BY v.produto_id\nORDER BY total_vendas DESC;\n\n-- Exibir o novo plano\nSELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);<\/code><\/pre>\n<pre><code class=\"output\">Plan hash value: 987654321\n\n-----------------------------------------------------------------------------------------------\n| Id  | Operation                    | Name             | Rows  | Bytes | Cost (%CPU)| Time     |\n-----------------------------------------------------------------------------------------------\n|   0 | SELECT STATEMENT             |                  |   492 | 13776 |    39   (5)| 00:00:01 |\n|   1 |  SORT GROUP BY               |                  |   492 | 13776 |    39   (5)| 00:00:01 |\n|*  2 |   TABLE ACCESS BY INDEX ROWID| VENDAS           | 82192 |  2248K|    38   (3)| 00:00:01 |\n|*  3 |    INDEX RANGE SCAN          | IDX_VENDAS_DATA  | 82192 |       |    15   (1)| 00:00:01 |\n-----------------------------------------------------------------------------------------------\n\nPredicate Information (identified by operation id):\n---------------------------------------------------\n\n   3 - access(\"V\".\"DATA_VENDA\">=TRUNC(SYSDATE)-30)<\/code><\/pre>\n<p>Observe como o plano mudou: a opera\u00e7\u00e3o <strong>TABLE ACCESS FULL<\/strong> foi substitu\u00edda por um <strong>INDEX RANGE SCAN<\/strong> sobre o \u00edndice <strong>IDX_VENDAS_DATA<\/strong>, seguido de um <strong>TABLE ACCESS BY INDEX ROWID<\/strong> para buscar as demais colunas. O custo total caiu de 182 para 39, uma melhoria significativa. Este exemplo ilustra o poder do <strong>Explain Plan<\/strong> no <strong>Performance Tuning<\/strong>: com poucos comandos, conseguimos visualizar o impacto de um objeto de banco de dados no desempenho de uma consulta.<\/p>\n<h3>Performance Tuning com AWR \u2014 Automatic Workload Repository<\/h3>\n<p>O <strong>Automatic Workload Repository<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Oracle SQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20Oracle%20SQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins, &#8230; <a title=\"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/\" aria-label=\"Read more about Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2842,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[3451],"class_list":["post-2843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-oracle-sql-do-zero-ao-avancado-performance-tuning-explain-plan-awr-e-sql-advisor"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-12T21:07:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-12T21:07:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#blogposting\",\"name\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1789247234563.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\"},\"datePublished\":\"2026-09-12T18:07:18-03:00\",\"dateModified\":\"2026-09-12T18:07:18-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#webpage\"},\"articleSection\":\"DevOps, Oracle SQL \\u2014 Do Zero ao Avan\\u00e7ado: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#listItem\",\"name\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#listItem\",\"position\":3,\"name\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/\",\"name\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions\",\"description\":\"Hoje, s\\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\\u00e7\\u00e3o do conhecimento em Oracle SQL. Esta \\u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \\u2014 Do Zero ao Avan\\u00e7ado, e o foco central \\u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\\u00ea aprendeu a escrever consultas complexas, utilizar joins,\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/ai-image-1789247234563.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 23: Performance Tuning \\u2014 Explain Plan, AWR e SQL Advisor\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/09\\\/12\\\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\\\/#mainImage\"},\"datePublished\":\"2026-09-12T18:07:18-03:00\",\"dateModified\":\"2026-09-12T18:07:18-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions","description":"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#blogposting","name":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions","headline":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1789247234563.jpg","width":1440,"height":1024,"caption":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor"},"datePublished":"2026-09-12T18:07:18-03:00","dateModified":"2026-09-12T18:07:18-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#webpage"},"articleSection":"DevOps, Oracle SQL \u2014 Do Zero ao Avan\u00e7ado: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#listItem","name":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#listItem","position":3,"name":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/","name":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions","description":"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/ai-image-1789247234563.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#mainImage","width":1440,"height":1024,"caption":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/#mainImage"},"datePublished":"2026-09-12T18:07:18-03:00","dateModified":"2026-09-12T18:07:18-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions","og:description":"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-09-12T21:07:18+00:00","article:modified_time":"2026-09-12T21:07:18+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor - BLOG - JRT Technology Solutions","twitter:description":"Hoje, s\u00e1bado, 12 de setembro de 2026, damos um passo decisivo na consolida\u00e7\u00e3o do conhecimento em Oracle SQL. Esta \u00e9 a Aula 23 de 24 do nosso curso Oracle SQL \u2014 Do Zero ao Avan\u00e7ado, e o foco central \u00e9 Performance Tuning. Ao longo das aulas anteriores, voc\u00ea aprendeu a escrever consultas complexas, utilizar joins,","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2843","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-12 21:09:18","updated":"2026-09-12 21:09:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 23: Performance Tuning \u2014 Explain Plan, AWR e SQL Advisor","link":"https:\/\/jrtx.com.br\/blog\/2026\/09\/12\/aula-23-performance-tuning-explain-plan-awr-e-sql-advisor\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2843"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2842"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}