Webcast: SQL Server CPUING – Part I no VirtualPassPT

virutal_pass_logo1

EXEC sp_configure ‘rubens barrich’,1
GO
RECONFIGURE WITH OVERRIDE
GO

Olá amigos, antes de mais nada, queria desejar um feliz 2015 a todos. Este é o primeiro post do ano e já começo com uma boa notícia: irei apresentar um webcast pelo Virtual PASS PT.

EXEC sp_configure ‘rubens barrich’,0
GO
RECONFIGURE WITH OVERRIDE
GO

O Virtual PASS PT é uma comunidade SQL Server online que promove vários eventos relacionados ao mesmo. No site deles, você pode acompanhar os eventos, blogs e muito mais. Tem muita coisa legal e muita gente fera contribuindo no grupo. Ahhh, gostaria de agradecer o Edvaldo Castro e o Marcos Freccia pela oportunidade de apresentar este webcast e poder contribuir com a comunidade. Muito obrigado!

O webcast

Bom, o tema que escolhi foge um pouco do que tenho postado aqui e dos assuntos que tenho focado nos últimos anos, o que não o torna menos importante pra mim. Pelo contrário, este é um assunto que sempre esteve presente, principalmente nos casos em que o problema era desempenho e otimização: o uso de CPU pelo SQL Server.

Uma rápida história: No início da minha carreira como DBA, havia um evento de CPU alta em um servidor de produção, causada pelo processo do SQL Server, e então eu fui olhar em algumas DMOs para tentar entender o que estava acontecendo. Eu identifiquei que uma certa query havia gasto X milisegundos de CPU e haviam me perguntado: Mas isso é quanto % de CPU? Quanto de processamento? Eu não soube responder. Você tem uma infinidade de ferramentas fornecidas pelo Windows e pelo SQL Server que te permitem identificar os problemas de processamento, do mesmo jeito que essas mesmas ferramentas também te permitem identificar que não há problemas de processamento, bastando apenas a interpretação correta dos dados.

Pensando nisso tudo e através de estudos e conversas (aproveito para agradecer ao Ivan Lima, expert no assunto e me atendeu prontamente quando pedi para revisar o conteúdo desta apresentação) resolvi tentar repassar a comunidade um pouco do que aprendi quanto à isso para facilitar a interpretação das informações.

Esta apresentação será divida em 3 partes, onde a primeira será focada em algo um pouco mais longe do SQL Server e mais perto do Windows, abordando CPU e seu uso, mas que é extremamente importante para entender o resto. Posso arriscar dizer que a primeira parte é a mais importante e mais esclarecedora. Vou falar um pouquinho de threads e instruções, mas nada de uma arquitetura específica, nada de assembly ou coisa parecida (tá, quem sabe um tiquinho de Asssembly…).   A segunda parte vai ser voltada somente para threads e sincronização de threads. E a última o foco será o SQL Server e seu uso de CPU, abordando as DMVs e conceitos básicos do SQLOS e como podemos entender o que está sendo apresentado. Irei postar quando for apresentá-las.

O termo “CPUING”  não existe em gramática nenhuma. É apenas um termo que criei para representar o foco desta apresentação: SQL Server e CPU somente, e o tempo todo! Ficou interessado? Você pode se inscrever para o webcast, que é gratuito, neste link.

E aí, quantos % de CPU essa query está usando?

Query com CPU de 4.648 milisegundos em execução

Quantos % de CPU?

Até lá!