Por que eu devo ler este artigo:A otimização de consultas é utilizada para aumentar o desempenho dos SGBDs. Neste artigo serão mostradas algumas
técnicas que vão auxiliar na codificação das consultas afim de obter o melhor tempo de resposta, comparando consultas
não otimizadas com consultas otimizadas utilizando o Plano de Execução do SQL Server. Este artigo será útil para mostrar
os benefícios da aplicação de técnicas de modelagem e programação para a otimizações de consultas utilizando o SQL
server. As técnicas serão analisadas e remodeladas para obter um maior desempenho no banco de dados, conseguindo assim
mostrar a sua eficácia.
As organizações estão recorrendo cada vez mais à Tecnologia da Informação e Comunicação para gerenciar e armazenar
os dados que são processados e manipulados no dia a dia. Com isso, o volume de dados vem aumentando
consideravelmente, evidenciando a necessidade de otimização dos Sistemas Gerenciadores de Banco de Dados (SGBDS).
Dessa maneira, é primordial que as operações realizadas no banco de dados sejam eficazes e processadas no tempo
certo para a tomada de decisão. Para garantir o desempenho e a eficiência das informações acessadas no banco, a
otimização deve ser almejada pelos Administradores de Banco de Dados (DBA), em especial a efetivação de consultas
que gerem informações rápidas e precisas.
Existem diferentes estratégias de otimização de um sistema de banco de dados baseado no SQL Server, sendo possível
aumentar a eficiência e eficácia dos processos. Muitos trabalhos citam técnicas de otimização de consultas em bancos
de dados, mostrando sua aplicação e descrevendo os seus benefícios. Contudo até o presente momento nenhum fez um
levantamento real do ganho em processamento e tempo na utilização destas técnicas focado diretamente no banco de
dados SQL Server.
As técnicas de otimização de consultas que serão analisadas correspondem às de modelagem e programação das consultas
no qual o desenvolvedor pode remodela-las para obter maior desempenho no banco de dados. No decorrer do artigo,
buscaremos responder a seguinte pergunta: Quais os benefícios em se aplicar algumas técnicas de otimização de
consultas em um banco de dados SQL Server? O objetivo central que orienta este artigo é mostrar os benefícios da
aplicabilidade de algumas técnicas de otimizações de consultas utilizando o SQL server. Para isso, será feita uma
análise das consultas com e sem a utilização das técnicas, comparando o tempo e desempenho de resposta de ambos
conseguindo assim demostrar a sua vantagem.
Ferramentas
Neste artigo utilizamos o SQL Server por ser um dos SGBD mais utilizados nas empresas. A execução das consultas com
o uso das técnicas de otimização foi realizada na versão 2016, utilizando o banco de dados AdventureWorks 2016CTP3,
sendo analisado o plano de execução, estatísticas de tempo, e estatísticas de entrada e saída para obter os
resultados. Em todas as consultas foram executados os comandos “DBCCDROPCLEANBUFFERS” e “DBCCFREEPROCCACHE” para
limpar o cache do SQL Server, afim de obter um resultado mais preciso das estatísticas.
O plano de execução calcula o caminho mais eficiente para implementar uma requisição representada pelo T-SQL,
possibilitando gerar um diagrama com o fluxo percorrido para obter os resultados solicitados, mostrando os índices
utilizados, e informações que ajudam o gerenciador de banco no processo de otimização de consultas. Na Figura
1 é apresentado um exemplo de plano de execução.
Figura 1. Demonstração do fluxo do plano de execução de uma consulta simplificada
A estatística de tempo é visualizada ao executar o comando “SET STATISTICS TIME ON”. Ela mostra o tempo em
milissegundos necessário para analisar, compilar e executar cada instrução. A estatística possui o tempo de CPU que
é o tempo gasto pela CPU do servidor para processar a consulta e o tempo decorrido que se refere ao tempo de
execução da consulta. O valor do tempo da CPU pode variar de acordo com a execução, mas a diferença é mínima. Já o
tempo decorrido pode ter uma grande variação pois depende de muitos fatores, como largura de banda de rede entre
servidor e cliente, carga no servidor e carga IO. Neste artigo vamos analisar apenas o tempo de execução das
consultas. Na Figura 2 é demonstrado o resultado da estatística de tempo de uma consulta.
Figura 2. Resultado ao ativar o SET STATISTICS TIME após execução de uma consulta
A estatística de entrada e saída é visualizada ao executar o comando “SET STATISTICS OI ON”. Ela exibe os dados
referentes à quantidade de atividades geradas em disco pelas consultas, onde temos:
Tabela: nome da tabela envolvida na consulta;
Número de verificações: número de buscas iniciadas para recuperar todos os valores para saída final;
Leituras lógicas: número de páginas lidas do cache de dados do SQL Server;
Leituras físicas: número de páginas lidas no disco do servidor;
Leituras read-ahead: número de páginas colocadas no cache para a consulta;
Leituras lógicas lob: número de colunas com valor grande: VARCHAR(MAX), VARCHAR(MAX) e VARBINARY(MAX) lidas do cache;
Leituras físicas lob: número de colunas com valor grande: VARCHAR(MAX), VARCHAR(MAX) e VARBINARY(MAX) lidas do disco do
servidor;
Leituras read-ahead lob: número de colunas com valor grande: VARCHAR(MAX), VARCHAR(MAX) e VARBINARY(MAX) adicionadas no cache de
dados.
As leituras de lob não foram analisadas no artigo pois em todas as consultas os resultados foram 0 por não possuírem
colunas com valor grande. Na Figura 3 é apresentado um exemplo.
Figura 3. Resultado ao ativar o SET STATISTICS OI após execução de uma consulta
Banco de dados
Um banco de dados é definido como um conjunto de dados armazenados e relacionados para atender as necessidades dos
usuários, possibilitando a consulta e manipulação dos dados, seja manual ou computadorizada. Com o passar do tempo e
com o avanço tecnológico, os bancos de dados passaram a ser considerados o coração de muitos sistemas, pois oferecem
segurança dos dados e ainda auxiliam no acesso rápido às informações para tomada de decisão.
Para gerenciar o grande volume de dados é necessário a utilização de um SGBD que oferece uma interface que
possibilita a inclusão, alteração e consulta dos dados armazenados no banco de dados. Dentre os SGBDs mais
utilizados podemos citar o Oracle, MySQL, Microsoft SQL Server, PostgreSQL e MongoDB.
Linguagem SQL
A linguagem SQL foi criada durante o processo de desenvolvimento dos bancos de dados relacionais. Em meados da
década de 1970, o departamento de pesquisa da IBM criou a linguagem SQL denominada SYSTEM R. A linguagem recebeu o
nome de SEQUEL (structured english query language). Em 1977 a linguagem passou a ser chamada de SQL (Structured
Query Language). Em 1986 o American National Standard Institute – ANSI, junto com a Organização Internac ...
Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO
Desbloqueie toda a DevMedia
+2000 artigos e vídeos
+40 trilhas sobre Front-end, Back-end, IA e muito mais
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.