Conhecendo o Live Query Statistics no Microsoft SQL Server 2016

Salve, salve galera, bom dia….. Ufa, sexta – feira!!!!

Para terminar mais uma semana de muito trabalho, gostaria de compartilhar com vocês mais uma novidade que o Microsoft SQL Server 2016 esta nos apresentando, conhecida como Live Query Statistics.

Quando eu ouvi ao sobre esta funcionalidade sinceramente não acreditei, mas é verdade, alias uma grande realidade, conseguir em tempo real de processamento de uma query acompanhar todo seu processamento, entendendo realmente como cada operador é sensibilizado pelo Query Processor durante seu trabalho, e como cada operador interage com os demais.

Tenho a certeza que esta nova funcionalidade vai ajudar em muito a todos os profissionais que de alguma forma utilizam o Microsoft SQL Server em sua atividades.

Espero que você goste deste artigo, vamos em frente.

Introdução

O time de engenheiros e desenvolvedores da Microsoft a cada nova versão vem trazendo novos recursos, funcionalidades e comandos que possibilitam a qualquer profissional da área de Banco de Dados, conseguir acompanhar e entender como o Microsoft SQL Server através do Query Processor e Query Optmizer trabalha, algo que foi evoluíndo desde a versão 2008 com a mudanças de alguns operadores como o antigo Bookmark Lookup que posteriormente veio a ser chamado de Key Lookup, além disso, a introdução do Missing Index dentro do Execution Plan também foi considerado por todos em meados de 2008 um elemente fundamental para se obter ganhos de performance no processamento de nossas querys.

Na versão 2014 a Microsoft deu um grande salto a possibilitar o monitorando o progresso de execução de querys em tempo real através da DMV sys.dm_exec_query_profiles disponível em todas as edições desta versão, inclusive você vai poder encontrar aqui no meu blog, um artigo dedicado exclusivamente a esta funcionalidade, acessando: https://pedrogalvaojunior.wordpress.com/2015/08/12/monitorando-o-progresso-de-execucao-de-querys-em-tempo-real-no-microsoft-sql-server-2014/

Agora na versão 2016 no meu entendimento a Microsoft conseguiu realmente trazer o que estava faltando, permitir ao SQL Server ter a capacidade técnica de apresentar em real-time, isso mesmo, em tempo real todo processo de execução de nossas querys, apresentando de forma visual, gráfica e muito inteligente o Execution Plan estabelecido com seus operadores sendo processados, e não somente mostrar, mas sem necessitar de qualquer ferramenta adicional proporcional dentro do Management Studio clicar em um simples botão e habilitar esta funcionalidade.

As dificuldades do dia a dia

Acredito que uma das maiores dificuldades de qualquer administrador de banco de dados, analista de sistema, desenvolvedores, enfim profissionais que de alguma forma acabam tendo a necessidade de trabalhar com SGBD (Sistemas Gerenciadores de Banco de Dados) é encontram em qual parte do seu ambiente podem estar ocorrendo á chamada “lentidão”, elemente presente dentre de qualquer infraestrutura de tecnologia que deixa todos os envolvidos diretamente ou indiretamente muitas vezes sem respostas.

Com o Live Query Statistics teremos a capacidade de conseguir encontrar de uma forma mais fácil, rápida e prática em qual parte da uma determinada query esta temida “lentidão” pode estar ocorrendo ou posso proporcionar em seguida algum tipo de mudança de comportamento.

Sobre o Live Query Statistics

Introduzido a partir do CTP 2.1 do Microsoft SQL Server 2016, o Live Query Statistics tem como principal objetivo apresentar o plano de execução ao vivo, exibindo:

  1. O progresso de processamento de uma query;
  2. As Estatísticas de tempo de execução de cada operador;
  3. O Tempo de execução geral do processamento da query;
  4. O Número de linhas processadas;
  5. A Sequência de processamento de cada operador;
  6. A interação entre os operadores;
  7. A ordem de processamento de cada operador até o final de execução da query; e
  8. A porcentagem de processamento de cada operador.

Talvez a colocação que eu venha a fazer agora possa ser um pouco exagerada, mas eu acredito que esta feature nos possibilita acompanhar um apresentação ao vivo de todo o trabalho realizado pelo SQL Server, cheguei até pensar que isso poder ser considerado uma “Vídeo aula”, espero não estar exagerando, mas a maneira que é demonstrado a evolução de execução da nossa query nos faz pensar e até mesmo imaginar que estamos assistindo um pequeno vídeo ou webcast.

Outra consideração que podemos fazer em relação ao Live Query Statistics, é a capacidade de permitir uma análise na linear e precisa de cada parte do processament realizado por uma query, bem como, o seu próprio debug se torma mais flexível e inteligente.

Colocando a mão na massa….na verdade no teclado

Para tentar demonstrar como podemos utilizar esta nova funcionalidade, vamos utilizar o mesmo ambiente criado no artigo: https://pedrogalvaojunior.wordpress.com/2015/08/12/monitorando-o-progresso-de-execucao-de-querys-em-tempo-real-no-microsoft-sql-server-2014/. Trabalhando como o Database: DBMonitor e a Table: BigTable.

Em nosso ambiente de teste, estou utilizando a última versão do Management Studio 2015 chamada de Preview September 2015, que você poderá baixar acessando: http://blogs.msdn.com/b/sqlagent/archive/2015/09/30/sql-server-management-studio-september-2015-preview.aspx ou https://msdn.microsoft.com/en-us/library/mt238290.aspx.

Vale ressaltar que este último preview corresponde a versão CTP 2.4 do Microsoft SQL Server 2016, caso você queira saber mais sobre esta versão preview acesse: http://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2016

Para começar a brincadeira, vou utilizar o select apresentando abaixo denominado Código 1:

— Código 1 – Consultando os dados da Tabela BigTable —

Use DBMonitor

Go

 

Select Top 100000 OrderID,

CustomerID,

Format(OrderDate, ‘dd/mm/yyyy – hh:mm’) As ‘Date’,

Round(Value,2) As ‘Value’,

CONCAT(‘Teste de execução do Live Query Statistics – ‘,GetDate()) As ‘Mensagem’

From BigTable

Order By CustomerID Desc

Go

 

Analisando de forma superficial o Código 1, você pode observar que estou fazendo uso do comando Top para retornar 100.000(Cem mil) linhas de registros existentes dentro da tabela BigTable, além disos, estou fazendo uso das funções Format e Concat, ambas funções string introduzida no Microsoft SQL Server 2012, que nos permite realizar a formatação de valores e concatenação de textos respectivamente. Até aqui tranquilo, nada de diferente, podemos continuar, nos preparando para execução deste Select, onde antes de clicar no botão Execute ou teclar F5, vamos neste momento habilitar o Live Query Statistics, localizando este botão na Toolbar – SQL Editor existente em nosso Management Studio, conforme apresenta a Figura 1, a seguir:

lqs
Figura 1 – Toolbar – SQL Editor.

Observe que logo após os botão Include Atual Execution Plan, foi adicionado um novo botão, chamado Live Query Statistics, conforme apresenta a Figura 2 abaixo:

lqs1

Figura 2 – Botão – Live Query Statistics.

Agora, basta você clicar neste botão para que o Management Studio realiza a ativação do mesmo e permita sua apresentação durante a execução da nossa query, sendo assim, clique no botão em seguida selecione o nosso bloco de código Select e tecle F5 ou Execute.

 

A partir do momento que o SQL Server começa a executar nossa query, o Management Studio adiciona em sua guia de resultados e mensagens uma nova Guia rotulada: Live Query Statistics, conforme apresenta a Figura 3 a seguir:

lqs2

Figura 3 – Guia – Live Query Statistics apresentando durante o processamento do Código 1.

Se tudo correu bem esta guia esta sendo apresentada neste momento no Management Studio e você vai poder acompanhar em real time, todo fluxo de processamento do nosso select, observe que as linhas que interligam cada operador estão neste momento desenhadas de forma pontilhada, indicado que esta ocorrendo um troca de dados, onde estas linhas e posteriormente as respectivas setas serão preenchidas completamente após a conclusão da execução da nossa query ou de acordo com o termino de processamento de cada operador.

Para ilustrar melhor a execução do Live Query Statistics disponibilizei um vídeo que poderá nos ajudar na compreensão:

Outra maneira de habilitar e acompanhar todo trabalho realizado LQS, pode ser feito através da ferramenta Activity Monitor, onde será apresentada a opção Show Live Execution Plan, dentro da guia Active Expensive Queries conforme apresenta a Figura 4 na sequência:

lqs4

Figura 4 – Activity Monitor – Opção Show Live Execution Plan.

Considerações

Como tudo no mundo nada é 100% perfeito, maravilhoso e principalmente 100% utilizável, isso também se aplica para o Live Query Statistics que até o presente momento possui algumas limitações, sendo elas:

  • Não possui suporte para ColumnStoreIndex;
  • Tabelas do tipo Memory-Optimized não são suportadas; e
  • Compilação de Stored Procedures nativas do SQL Server também não são suportadas.

Outro detalhe muito importante, esta relacionado a saúde das estatísticas existentes em nosso banco de dados, sejam elas estatísticas criadas automaticamente para nossos tabelas e índices, como também, estatísticas internas, caso estes componentes não mantenham-se atualizados o Live Query Statistics também será impactado da mesma forma que o Query Processor e Query Optimizer na identifação e processamento de uma query. Para evitar este tipo de cenário, torna-se recomendável fazer uso do comando Update Statistics ou da System Stored Procedure SP_UpdateStats. Caso você deseja saber mais sobre estas funcionalidades acesse:

Conclusão

Com certeza, o Live Query Statistics nova feature adicionada o novo Microsoft SQL Server 2016, vai proporcionar uma grande revolução no trabalho dos profissionais que trabalham com banco de dados. Esta capacidade de conseguir em tempo real acompanhar todo processamento realizado pelo SQL Server, torna este recurso um ferramenta indispensável na identificação de possível problemas de performance que podem estar relacionados ao SQL Server.

Observar, acompanhar, analisar e compreender o fluxo de processamento realizado pelo Query Processor através de um plano de execução ao vivo, obtendo dados estatísticos processamentos naquele momento trazem uma nova visão aos Administradores de Banco de Dados, onde estes profissionais terão maior precisão e argumentos mais concretos na tomada de decisão de uma possível mudança de arquitetura e infraestrutura.

Espero que você tenha gostado deste artigo, que as informações compartilhadas aqui possam lhe ajudar.

Mais uma vez obrigado.

Até a próxima.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove - Campus São Roque. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP - Faculdade de Informática e Administração Paulista de São Paulo. Pós-Graduado em Gestão da Tecnologia da Informação Faculdade - ESAMC Sorocaba. Cursando Mestrado em Ciências da Computação - UFSCar - Campus - Sorocaba. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1995 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator - Administrador de Banco de Dados - SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, Triggers. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, para versões: 2000, 2005, 2008, 2008 R2, 2012 e 2014. Atualmente trabalho como Administrador de Banco de Dados no FIT - Instituto de Tecnologia da Flextronics, como também, Consultor em Projetos de Tunnig e Performance para clientes. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Possuo titulação Oficial Microsoft MVP - SQL Server renovada desde 2007.

Um comentário em “Conhecendo o Live Query Statistics no Microsoft SQL Server 2016”

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s