Engenharias e TI

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 (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.

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 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.

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 (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

Cristiane Selem Ferreira Neves

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 Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação e integra o corpo docente da Escola de Contas de Gestão do TCE-RJ, além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Posts recentes

Contrato com o Cebraspe traz detalhes do concurso TCE PR

Salário inicial de R$ 22,4 mil! Obtivemos acesso ao contrato com o Cebraspe, banca organizadora…

9 horas atrás

Concurso TCE PR: EDITAL iminente! Iniciais de R$ 22,4 mil

O tão aguardado edital do concurso Tribunal de Contas do Estado do Paraná (TCE PR)…

10 horas atrás

Porque é crime fabricar açúcar em casa?

            Olá caro (a) amigo (a) leitor (a), vai bem? É sempre ótimo ver você…

14 horas atrás

Concurso Câmara de Candeias: edital tem 59 vagas; confira!

Atenção, corujas! Mais uma oportunidade na área legislativa: saiu o edital do concurso Câmara de…

17 horas atrás

Requisitos Funcionais e Não Funcionais para CEF (TI)

Olá pessoal, tudo bem? Este artigo apresenta um resumo de Engenharia de Requisitos, focando em…

17 horas atrás

Concurso TJ CE: comissão formada; edital até julho!

O Tribunal de Justiça do Ceará (TJ CE) pode ter seus novos editais publicados em breve…

17 horas atrás