Artigo

Bancos de Dados descomplicado: Técnicas para otimização de performance.

Introdução

Hoje daremos continuidade a nossa sequência de resumos de conteúdos de TI gratuitos, elaborados com exclusividade para o Blog do Estratégia Concursos. Ainda falando a respeito de Banco de Dados, assunto que despenca sobretudo nas provas da FGV e do Cebraspe/Cespe, abordaremos nesse artigo algumas técnicas para otimização de performance.

Normalmente, esse tópico costuma ser mais cobrado para cargos específicos de TI. No entanto, existe também a possibilidade de que seja exigido em cargos não específicos, especialmente em concursos de alto nível (Senado, Receita Federal etc). Em razão disso, recomendamos sempre checar previamente o conteúdo programático do seu Edital. Segue o nosso roteiro de hoje:

  • Conceitos de Otimização de Performance
  • Índices em Bancos de Dados
  • Análise de Consultas SQL
  • Conexões de Bancos de Dados
  • Configurações de Parâmetros

Este é um tópico mais avançado. A fim de entender os conceitos apresentados neste artigo, é necessário que você tenha algum conhecimento de banco de dados, incluindo seus objetos, para não ficar perdido. Por exemplo, precisa conhecer o que é uma tabela, o que é um índice etc. Contudo, não vamos aprofundar esses tópicos hoje para o conteúdo não ficar muito extenso.

Se não conhecer nada a respeito do tema, recomendamos buscar o material do Estratégia (os links estão no final desta publicação) e retornar a este artigo posteriormente. Atendendo a pedidos, o conteúdo será mais curtinho, a fim de que todos tenham a oportunidade de realizar a leitura com tranquilidade, sem atrapalhar os estudos.

Tempo de leitura aproximada: 5 a 10 minutos

Conceitos de Otimização de Performance

No mundo de Tecnologia da Informação, o termo otimização de performance está principalmente relacionado a uma melhoria no desempenho. No contexto de Bancos de Dados, essa evolução pode ocorrer por meio de hardware ou software. Ressalta-se que alguns Editais apresentam o termo Tuning, que é um sinônimo para a otimização de performance a que estamos nos referindo.

Esse assunto vem ganhando espaço cada vez maior nas provas de concursos dos últimos anos. A prova discursiva do TJ-RJ de 2020/2021 para o cargo de Analista Judiciário – Analista de Sistemas, elaborada pela banca Cebraspe/Cespe, explorou essencialmente a otimização de performance. Veja:

Figura 1 – Prova Discursiva do TJ-RJ de 2020/2021 para o cargo de Analista Judiciário – Analista de Sistemas, que explorou a otimização de performance.
Figura 1 – Prova Discursiva do TJ-RJ de 2020/2021 para o cargo de Analista Judiciário – Analista de Sistemas, que explorou a otimização de performance (Fonte: Cebraspe/Cespe. Disponível em: https://cdn.cebraspe.org.br/concursos/TJ_RJ_20_ANALISTA/arquivos/533_TJRJ_014_DISC.PDF. Acesso em: 08 set. 2022).

Índices em Bancos de Dados

Primeiramente, você já utilizou o índice de um livro? Normalmente, as pessoas o buscam para encontrar facilmente um assunto. Ele contém a página em que o tópico está situado. O mesmo ocorre em Bancos de Dados. Um índice é um objeto associado a uma tabela, que tem por objetivo facilitar a busca de um dado nela. É uma espécie de ponteiro associado aos dados armazenados.

Existem diversos tipos de índice. Entre as classificações mais cobradas, podemos destacar os índices clusterizados e não clusterizados. Os índices clusterizados apresentam uma ordenação dos dados contidos nas linhas da tabela, como um agrupamento. Por outro lado, os índices não clusterizados ordenam apenas os índices, deixando os dados organizados em qualquer posição.

Figura 2 – Exemplo de índice em Banco de Dados.
Figura 2 – Exemplo de índice em Banco de Dados.

Análise de Consultas SQL

Uma outra técnica bastante utilizada para otimização de performance baseia-se na análise de consultas SQL, também conhecida como plano de execução. Dependendo da forma como é construída, uma consulta SQL pode degradar bastante o desempenho do Banco de Dados.

A fim de resolver esse problema, Administradores de Bancos de Dados e/ou Desenvolvedores podem empregar diversos artifícios para melhorar a performance das consultas SQL, tais como mudanças de posicionamento das tabelas, troca de operadores, utilização de “hints” etc.

Você Sabia? “Hint” é um artifício utilizado em Banco de Dados para forçar a execução das consultas de determinadas maneiras. Na prática, ele é uma expressão curta, composta por uma ou mais palavras. Sua utilização requer bastante estudo dos impactos e experiência por parte do profissional.

Figura 3 – Exemplo de consulta SQL com aplicação de “hint”.
Figura 3 – Exemplo de consulta SQL com aplicação de “hint”.

Figura 4 – Exemplo de plano de execução de uma consulta SQL em um Banco de Dados.
Figura 4 – Exemplo de plano de execução de uma consulta SQL em um Banco de Dados (Fonte: Oracle. Disponível em: < https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/monitoring-and-tuning-the-database.html#GUID-5591790E-1E07-4D7A-853E-3DB0F3D57AF4>. Acesso em: 09 set. 2022).

Conexões de Bancos de Dados

Outra alternativa para melhorar o desempenho em Bancos de Dados envolve as conexões. De forma bem simples, conexão é uma comunicação que você estabelece para realizar as transações. A recomendação é mantê-la aberta apenas enquanto efetivamente você estiver realizando alguma operação no Banco de Dados. Caso contrário, será melhor fechá-las.

Se estiver achando complicado, pense em uma clínica. Suponha que o local possua 4 linhas telefônicas para pedidos de consulta dos pacientes, mas contratou apenas 1 secretária (coitada!). Se todos os telefones tocarem ao mesmo tempo, você acha que ela conseguirá marcar todas as consultas? Ou será que ficará sobrecarregada? Situação semelhante ocorre no Banco de Dados.  

Figura 5 – Exemplo do caminho percorrido por conexões simultâneas, realizadas por diferentes estações de uma mesma rede.
Figura 5 – Exemplo do caminho percorrido por conexões simultâneas, realizadas por diferentes estações de uma mesma rede.

Configurações de Parâmetros

A última técnica que vamos apresentar baseia-se na configuração de parâmetros específicos no Bancos de Dados para otimização de performance. Essa configuração normalmente é de responsabilidade do Administrador de Banco de Dados ou Administrador de Dados, dependendo de como os perfis estão estruturados dentro da organização.

A configuração permite aumentar parâmetros relacionados à memória compartilhada, tamanho de memória “cache”, número de conexões concorrentes, etc. A nomenclatura dos parâmetros pode variar de um Banco de Dados para outro.

Dificilmente as bancas entrarão a fundo nesse tópico, exceto se estiver fazendo uma prova específica para um cargo de TI associado a Bancos de Dados. Assim, conhecer os conceitos já será suficiente para acertar a questão, principalmente se ela for de uma Prova Discursiva.

Figura 6 – Exemplo de configurações de parâmetros em um Banco de Dados.
Figura 6 – Exemplo de configurações de parâmetros em um Banco de Dados (Fonte: Microsoft. Disponível em: https://docs.microsoft.com/pt-br/azure/mysql/single-server/how-to-server-parameters. Acesso em: 09 set. 2022).

Conclusão

Neste artigo, apresentamos algumas técnicas para otimização de performance, considerado um tópico avançado de Bancos de Dados. Dessa forma, se você compreendeu bem os conceitos contidos nesta publicação, a recomendação é fazer muitas questões no Sistema de Questões do Estratégia para treinar, além de voltar ao tópico periodicamente para fazer revisões.

Assim como falamos em outras oportunidades, as questões são fundamentais para praticar o conteúdo e testar seu nível de conhecimento. Alunos aprovados realizam centenas, às vezes milhares de questões até atingir um nível de excelência no conteúdo. O acesso do Sistema de Questões do Estratégia é feito pelo link: https://concursos.estrategia.com/.

No entanto, se restaram dúvidas sobre os conceitos, nossa sugestão é buscar diretamente o material do Estratégia Concursos. O Estratégia oferece diversos cursos em pdf, videoaulas e áudios para você ouvir onde quiser. Saiba mais sobre todos os nossos cursos disponíveis na plataforma por meio do link https://www.estrategiaconcursos.com.br/cursos/.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Profissional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022) e TCE-RJ (2022). Atualmente exerce o cargo efetivo de Especialista em Previdência Social – Ciência da Computação e o cargo em comissão de Coordenadora de Desenvolvimento em TI no Rioprevidência, além de ser colaboradora do Blog do Estratégia Concursos.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2022

Concursos 2023

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.