Ano novo, post novo!!! Como estão as suas queries? (Ok… o trocadilho foi tosco…)
Meus amigos, desejo que todos vocês estejam com saúde e protegidos.
Eu estava com muita saudade do blog, mas precisei pensar um pouco sobre os nossos rumos em 2021.
Nos últimos anos conversamos sobre muita coisa legal, e agora focaremos nas maneiras de simplificar a vida de desenvolvedores, que precisam acessar dados de maneira inteligente.
Nossas queries são soluções e não problemas!
Imagina que você acaba de chegar em um novo projeto, que usa o SQL Server como SGDB, e foi informado que o desempenho de uma consulta não está dentro do aceitável.
Sua missão é melhorar esta consulta, e só entrar em contato com o DBA depois de tentar tudo.
Para começar as análise das queries…
SET STATISTICS IO {ON/OFF}
Quanto de IO a sua query original está consumindo?
Utilizo este comando para analizar informações referentes à quantidade de atividade em disco gerada pelas instruções Transact-SQL.
Quando STATISTICS IO está definida como ON, as informações estatísticas são exibidas. Quando está definida como OFF, as informações não são exibidas.
Depois que essa opção é definida como ON, todas as instruções Transact-SQL retornam a informações de estatística até que a opção seja definida como OFF.
Quando está definido como ON, as seguintes informações são exibidas:
- Nome da tabela;
- Quantidade de verificações – usando as palavras da documentação do SQL Server “Número de buscas ou exames iniciados depois de alcançar o nível folha em qualquer direção para recuperar todos os valores para construir o conjunto de dados final para a saída.”
- leituras lógicas – Número de páginas lidas do cache de dados.
- physical reads – Número de páginas lidas do disco.
- leituras antecipadas – Número de páginas colocadas no cache para a consulta.
- leituras lógicas lob – Número de páginas lidas do cache de dados. Inclui text, ntext, image, varchar(max), nvarchar(max), varbinary(max) ou páginas de índice columnstore.
- leituras físicas lob – Número de páginas lidas do disco. Inclui text, ntext, image, varchar(max), nvarchar(max), varbinary(max) ou páginas de índice columnstore.
- leituras antecipadas lob – Número de páginas colocadas no cache para a consulta. Inclui text, ntext, image, varchar(max), nvarchar(max), varbinary(max) ou páginas de índice columnstore.
Este é um dos comandos que eu uso para validar se realmente as alterações que eu fiz foram eficientes e eficazes. Como faço isso? Executo o comando lindinho na query original e depois na query alterada, comparo os valores e tenho a primeira indicação se eu estou indo pelo caminho certo.
Um exemplo fictício:
SET STATISTICS IO ON;
GO
SELECT NomeColuna
FROM UmaTabelaQualquer;
GO
SET STATISTICS IO OFF;
GO
Veja que eu sempre habilito este comando no começo da query e desabilito no final. Nada de executar em produção mais comandos do que precisamos!
Enfim…
Esse é nosso primeiro post sobre melhorias nas nossas consultas, aguardem os próximos e vamos juntos melhorando continuamente a qualidade das nossas entregas.
Cuidem-se, cuidem das suas famílias e sejam gentis com vocês e com os outros! O mundo precisa de gentileza, amor e empatia.
Até o próximo post!
Para terminar a conversa da semana…
Amigos, estamos em um momento complicado, então se você treina, faz exercícios ou vai fazer… Conheçam a SPEsportes… Um loja pequena, mas com produtos de grandes marcas, atendimento personalizado e entrega rápida… e que precisa sobreviver a crise.
Entre, conheça, compre, e recomende aos amigos, e não perca a chance de te 20% de desconto com o cupom DB4BEGINNERS.
Humano Dado
Amigos, quem me conhece sabe que sou inquieta, e os novos tempos me levam a diversas reflexões que eu gostaria de dividir com vocês.
Convido a todos para conhecer a newsletter Humano Dados.
Referências
https://docs.microsoft.com/pt-br/sql/t-sql/statements/set-statistics-io-transact-sql?view=sql-server-ver15