<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Luiz223</title>
    <description>The latest articles on DEV Community by Luiz223 (@luiz223).</description>
    <link>https://dev.to/luiz223</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1208952%2Fafa352fa-8e64-4e7b-8506-e66353584a58.png</url>
      <title>DEV Community: Luiz223</title>
      <link>https://dev.to/luiz223</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/luiz223"/>
    <language>en</language>
    <item>
      <title>Tutorial de Tuning em PL/SQL</title>
      <dc:creator>Luiz223</dc:creator>
      <pubDate>Thu, 07 Dec 2023 20:40:14 +0000</pubDate>
      <link>https://dev.to/luiz223/tutorial-de-tuning-em-plsql-5fml</link>
      <guid>https://dev.to/luiz223/tutorial-de-tuning-em-plsql-5fml</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introdução&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como já foi apontado no artigo anterior o Tuning é um conjunto de ações que o desenvolvedor pode fazer para melhorar o desempenho do seu banco de dados sendo elas ações dentro do código do banco ou ações por fora na parte de hardware mexendo com peças e etc.&lt;br&gt;
Nesse Tutorial será mostrando como podemos executar corretamente as praticas de Tunning dentro do código do banco de dados, serão mostrados cenário onde existe um "problema" e a explicação do método utilizado para resolver acompanhado por um imagem do mesmo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Índices.&lt;/strong&gt;&lt;br&gt;
Os índices são uma pratica comum em BD para facilitar a leitura de dados, deixando ela mais rápida. Ele funciona como se fosse um índice de um livro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cenário&lt;/strong&gt;&lt;br&gt;
Existe uma tabela muito grande com muitos dados e você deseja acelerar a consulta de dados que utilizam um filtro especifico como, por exemplo, o nome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;br&gt;
Ao criar o index você deve primeiro escrever o nome que será exibido, em qual tabela ele será exibido e por fim entre parênteses sobre qual coluna ele se refere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkm5en5ws3ldu47c7bbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkm5en5ws3ldu47c7bbh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Blocos Anônimos&lt;/strong&gt;&lt;br&gt;
Os blocos anônimos são pedaços de código que não tem um nome atribuído e são utilizados para executar instruções temporárias.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cenário&lt;/strong&gt;&lt;br&gt;
Você precisa esta desenvolvendo ou testando um pedaço do código em que seja necessário a criação de procedimentos formais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;br&gt;
Ao criar um código em um bloco anônimo primeiro você deve declara o começo dele usando o "BEGIN" e o final do bloco usando o "END" e será entre eles que você escrevera o seu código temporário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4hxa60mw2bu9y1e5s2k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4hxa60mw2bu9y1e5s2k.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cláusulas LIMIT e OFFSET&lt;/strong&gt;&lt;br&gt;
As Cláusulas LIMIT e OFFSET são usadas geralmente para controlar a quantidade de registros que serão retornados e mostrar a posição inicial dos resultados em ordem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cenário&lt;/strong&gt;&lt;br&gt;
Você precisa exibir os dados de uma tabela extensa e precisa fazer com que esses resultado sejam exibidos de uma forma confortável para o usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;br&gt;
Combinando o LIMIT e o OFFSET você pode montar uma busca customizada para que sejam exibidas apenas algumas informações ao invés de um numero excessivo de coisas. Primeiro selecionando a coluna depois a tabela, seguido pelo limite de linhas exibidas e por ultimo a posição inicial de onde a exibição será iniciada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlhucpahz211w402pss5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlhucpahz211w402pss5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Paralelismo&lt;/strong&gt;&lt;br&gt;
O paralelismo é referente a executar tarefas ou processos simultaneamente, assim dividindo a carga desse trabalho em menores partes para serem executadas em paralelo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cenário&lt;/strong&gt;&lt;br&gt;
Existe uma consulta a ser feita porem ela é uma consulta demorada e é possível  que sejam utilizados vários processadores para acelerar essa execução.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;br&gt;
Ao selecionar as colunas para fazer a consulta você pode usar uma dica de otimizador para apontar que a consulta pode ser feita em paralelo e em quantas partes ela pode ser dividida&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o79ndoywtlyhvnzg3fx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o79ndoywtlyhvnzg3fx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Perfil de rastreamento&lt;/strong&gt;&lt;br&gt;
O trace profiling ou Perfil de rastreamento é uma técnica usada para fazer a analise de desempenho e do comportamento do programa ou do sistema que está sendo executado. Esse procedimento é baseado em coletar dados com detalhes para identificar possíveis problemas de desempenho.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cenário&lt;/strong&gt;&lt;br&gt;
Você ao perceber que em alguns ponto do código a sua maquina parece executa-los de forma mais lenta ou atrasada você pode usar o perfil de rastreamento para identificar se existe algum problema com o sistema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prática&lt;/strong&gt;&lt;br&gt;
O perfil de rastreamento ira mostrar de maneira exata onde o código está gastando mais tempo por meio de um mapa das partes do mesmo&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imagem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsf4d7qhhwo5905lnevj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsf4d7qhhwo5905lnevj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GRUPO&lt;/strong&gt;&lt;br&gt;
Luiz Henrique Almeida da Silva - 191192&lt;br&gt;
Lucca Alves Santos - 190647&lt;br&gt;
Mathes Henrique Lopes Rodrigues - 190922&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Tuning</title>
      <dc:creator>Luiz223</dc:creator>
      <pubDate>Mon, 13 Nov 2023 20:12:25 +0000</pubDate>
      <link>https://dev.to/luiz223/tuning-3ghd</link>
      <guid>https://dev.to/luiz223/tuning-3ghd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Tuning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ao ouvir essa palavra "tuning" muitas pessoas podem pensar que está relacionada a questão de performance ou ao fato de melhorar o desempenho para certa tarefa e essas pessoas estarão corretas por pensarem desse jeito. A questão de Tuning é sempre um tópico a ser mencionado quando alguém precisa melhorar o nível de performance de uma tarefa seja ela algo que seja trabalhoso e demores muito ou até mesmo algo simples mas repetitivo que pode ser automatizado para poupar trabalho&lt;/p&gt;

&lt;p&gt;O tuning é um dos tópicos mais procurados por pessoas com interesse em tecnologia por ser algo muito interessante e importante que pode te auxiliar em atividades profissionais ou até mesmo no seu lazer &lt;/p&gt;

&lt;p&gt;O que é o tuning ? ao ouvir isso muitos podem lembra de carros já que a "tunagem" de veículos chama muita atenção e pensar dessa forma leva ao resultado correto já que o sinônimo de tuning é a otimização, ou seja, uma ou mais ações que você realiza com o objetivo de trazer o máximo de performance possível para o ambiente que você está trabalhando e na parte da tecnologia isso pode se aplicar em varias camadas como na parte da infraestrutura e até mesmo na parte de banco de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como "tunar" o BD ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ao perceber que o sistema esta lento muitas pessoas podem ser atraídas para a questão de peças já que algumas vezes quando algo não funciona bem é porque precisa de reparos ou trocas, sendo assim muitas pessoas pensaram em fazer um upgrade no processador da maquina, acrescentar mais espaço do disco ou até mesmo trocar os discos por outras com uma leitura mais rápida. Isso mesmo não estando errado ainda não é a forma correta de executar o tuning já que isso pode gerar um ciclo vicioso já que o banco de dados pode ficar maior e maior e assim você pode acabar sempre precisando de mais e mais peças para suprir a demanda de processamento. O recomendado seria adicionar outros tipos de mudanças em conjunto para conseguir um resultado mais eficiente no seu ambiente &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Formula do sucesso&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O processo ideal para o tuning seja feito com sucesso é juntar e analisar varias formas de melhorar o ambiente sejam elas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Melhoras na infraestrutura&lt;/li&gt;
&lt;li&gt;Aplicação&lt;/li&gt;
&lt;li&gt;Configurações no ambiente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O processo de tunign pode ser dividido em 3 etapas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entender o problema (Deve ser coletado varias informações sobre o problema no ambiente)&lt;/li&gt;
&lt;li&gt;Diagnosticar (Após a coleta de informações sobre o problema, deve-se analisar os dados e descobrir quais serão os passos que serão dados visando especificar bem o problema e descobrir o que você ira fazer para resolve-lo)&lt;/li&gt;
&lt;li&gt;Execução (Após o diagnostico do problema e o mapa de como resolve-lo você ira "botar a mão na massa" e tomar as ações necessárias para otimizar o seu ambiente e resolver o problema que foi descoberto)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Algumas técnicas do Tuning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-Índice&lt;br&gt;
Criar um índice permite que a informações seja obtida de forma mais rápida&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TvUTT-A5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/byn2nr9q3h2tqty9fcow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TvUTT-A5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/byn2nr9q3h2tqty9fcow.png" alt="Image description" width="334" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Evite usar "OR" na pesquisa&lt;br&gt;
Não é possivel processar o "OR" em uma operação, em vez disso, o algoritmo avalia os componentes um por um o que pode causar queda na performance&lt;/p&gt;

&lt;p&gt;Ao invés de:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s4EM2yOF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bfwbvzhylz5r7pbzjcnm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s4EM2yOF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bfwbvzhylz5r7pbzjcnm.png" alt="Image description" width="205" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Faça:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oFKw54Je--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a9mzzkyojyn1ytxtmz19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oFKw54Je--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a9mzzkyojyn1ytxtmz19.png" alt="Image description" width="228" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-Especifique a sua busca&lt;br&gt;
Ao selecionar tudo em uma tabela para ser exibido o algoritmo pode puxar muitos recursos quando se trata de uma base de dados muito grande, ao invés disso, utilize argumentos mais específicos para buscar dados&lt;/p&gt;

&lt;p&gt;Ao invés de:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tqrONmrM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcenpizyjnhsqeexp2rv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tqrONmrM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcenpizyjnhsqeexp2rv.png" alt="Image description" width="194" height="89"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Faça:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_Z1FqRGK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjlkf88vg2km7qaxoiyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Z1FqRGK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjlkf88vg2km7qaxoiyn.png" alt="Image description" width="341" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após tudo o que foi mostrado pode-se concluir que as boas praticas do tuning podem ser um diferencial no quesito de performance do banco de dados e por isso deve ser um tópico que deve estar na mira de muitos desenvolvedores quando se trata de banco de dados ou qualquer projeto para ser mais preciso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GRUPO:&lt;/strong&gt;&lt;br&gt;
Luiz Henrique Almeida da Silva - 191192&lt;br&gt;
Lucca Alves Santos - 190647&lt;br&gt;
Mathes Henrique Lopes Rodrigues - 190922&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
