@02 – O que Acontece?

No 2º post da sessão O que Acontece. Vou apresentar através da ferramenta SQL Server Profiler o que acontece quando clicamos no botão New Query existente no SQL Server Management Studio.

Boa dia!

Seja bem-vindo ao @02 – O que Acontece? Post da nova sessão lançada no início de 2020 no meu blog.

Antes de apresentar este segundo post, quero destacar alguns pontos em sobre esta sessão, em especial o tipo de conteúdo que você leitor vai encontrar em cada posts relacionado a ela:

1 – Os posts publicados nesta sessão envolvem um pouco do Micrososft SQL Server, na verdade o objetivo dela é tentar mostrar como ele SQL Server, o qual aqui eu vou denominar como caixa, pensa exclusivamente fora dela, ou seja, como este grandioso SGBD (Sistema Gerenciador de Banco de Dados) faz para que tenhamos nossos dados armazenados e apresentados em tela, em adicional como podemos de uma forma simples aprender, conhecer, desvendar os comportamentos realizados por ele além do uso das habituais ferramentas de administração: SQL Server Management Studio ou Azure Data Studio.

2 – Os posts, não apresentam o objetivo de demonstrar recursos, comandos, funcionalidades ou ensinar algo novo, na verdade eu quero tentar mostrar o que acontece muitas vezes quando por exemplo você esta processando um simples comando Select buscando milhões de dados em uma tabela, e o SQL Server Management Studio vai apresentando aos poucos os registros. Serão exclusivamente estes cenários, comportamentos e formas de atuação envolvendo o SQL Server e o ambiente que ele se encontra;

3 – Os posts, não terão uma estrutura padrão, na verdade, O que Acontece, foi idealizado da mesma forma que inicialmente começamos a pensar. Vamos reunindo conhecimentos, ideias, possibilidades, hipóteses, analisando alternativas, mensurando teorias, até tentar construir algo mais concreto;

4 – Não será estabelecido um calendário de publicação, ao contrário, sempre que algum pensamento fora da caixa pairar sobre a minha cabeça, ou coisas do meu dia-a-dia relacionados as minhas experiências profissionais ou acadêmicas, novos posts serão publicados, bem como, os atuais atualizados e corrigidos;

5 – Não vou me ater ao certo ou errado, melhor ou pior, tecnicamente perfeito ou melhor tecnicamente, o que eu quero é tentar como eu já destaquei ilustrar o que acontece do lado de fora do SQL Server, o que ele muitas vezes esta realizando e não temos ideia do que está acontecendo; e

6 – Vou tentar em cada post trazer uma ferramenta, aplicativo ou utilitário existente no próprio sistema operacional que possa nos ajudar a observar e entender o que está acontecendo de preferência em tempo real, em adicional, se possível utilizarei vídeos para elucidar de forma mais didática o objetivo do post.

Vamos começar nossa aventura.

Seja mais uma vez bem-vindo ao @02 – O que Acontece – Quando clicamos no botão New Query dentro do Management Studio?

Pensar no conteúdo de um novo post de acordo com sua respectiva sessão não é uma atividade que posso considerar como algo simples ou fácil, idealizar o conteúdo, imaginar o que pode ser compartilhado requer uma certa imaginação, o que eu não vejo ser muito bom em fazer, mas tento.

Como sempre, de uma hora para outra a minha mente começa a juntar um pouco do conhecimento, experiência e pensamentos meio loucos para se tentar contextualizar mesmo que de forma vaga um rascunho, e hoje não foi diferente, acordei como de costume bem cedinho e pensei na possibilidade de mostrar o que acontece quando realizamos um dos procedimentos mais comuns dentro do Management Studio, a simples ação de clicar no botão “New Query”.

Neste momento estava surgindo o segundo post da sessão O que Acontece.

SQL Server Management Studio

Uma das ferramentas mais tradicionais para se trabalhar com o Microsoft SQL Server denominado SQL Server Management Studio, lançado em conjunto com a versão 2005, o qual tornou-se um ambiente totalmente independente do SQL Server a partir de 2016 e atualmente pode ser considerado um ambiente completo no que tange as atividades de administração, gerenciamento, desenvolvimento e manutenção de instância e servidores Microsoft SQL Server.

Caso você ainda não conheça esta ferramenta, recomendo acessar este outro post publicado aqui no meu blog: SQL Server Management Studio 18.6 liberado para download.

Dando continuidade, quando realizamos o procedimento de carregamento do SQL Server Management Studio, nosso sistema operacional Windows estabelece os procedimentos de abertura e carregamenta da ferramenta em memória para que possamos ter acesso a nossa instância ou servidor Microsoft SQL Server, em adicional aos bancos de dados contido neste ambiente.

Mas para que possamos realizar o acesso aos referidos e desejados dados precisamos fazer uso de uma query “consulta”, ação tradicionalmente realizada através da execução do comando Select (o qual será tema para outro post desta sessão). Pois bem, basicamente este comando deve ser construido ou codificado em alguma ferramenta a qual para o nosso cenário será utilizada a última versão do SQL Server Management Studio denominada  (caso você esteja utilizando qualquer outra versão não terá problemas).

Para o nosso exe18.6mplo, não teremos a necessidade de elaborar ou codificar alguma instrução, ao contrário, nossas ações serão realizadas através do clique do mouse no botão New Query (nova consulta) dentro do Management Studio.

O legal desta brincadeira é que iremos utilizar uma outra ferramenta que talvez você já deve ter ouvido falar, me refiro ao SQL Server Profiler, uma das principais companheiras de jornada do SQL Server desde suas versão mais antigas, mais especificamente a partir da versão 2000.

SQL Server Profiler

O SQL Server Profiler é uma interface para criar e gerenciar rastreamentos, além de analisar e reproduzir resultados de rastreamento. Os eventos são salvos em um arquivo de rastreamento que posteriormente pode ser analisado ou utilizado para reproduzir uma série específica de etapas ao diagnosticar um problema.

Você pode capturar e salvar dados sobre cada evento em um arquivo ou tabela para análise posterior. Por exemplo, é possível monitorar um ambiente de produção para observar quais procedimentos armazenados estão afetando o desempenho devido à lentidão na execução. O SQL Server Profiler é usado para atividades como:

  • Percorrer consultas de problemas para localizar a causa do problema.
  • Localizar e diagnosticar consultas de execução lenta.
  • Capturar a série de instruções Transact-SQL que resultam em um problema. Em seguida, o rastreamento salvo pode ser usado para replicar o problema em um servidor de teste onde o problema pode ser diagnosticado.
  • Monitorar o desempenho do SQL Server para ajustar cargas de trabalho. Para obter mais informações sobre como ajustar o design físico do banco de dados para cargas de trabalho do banco de dados, consulte Database Engine Tuning Advisor.
  • Correlacionar contadores de desempenho para diagnosticar problemas.

O SQL Server Profiler também oferece suporte à execução de auditoria das ações executadas em instâncias do SQL Server. As auditorias registram ações relacionadas à segurança para análise posterior por um administrador de segurança.

Existem diversas maneiras para se inicializar o Profiler, seja ela dentro do SQL Server Management Studio ou por linha de comando, caso queira saber mais, acesse: As maneiras de iniciar o SQL Server Profiler.

Não vou destacar os conceitos e termos relacionados ao SQL Server Profiler, entretanto, para nosso melhor entendimento, vamos utilizar a ação denominada Rastreamento (Trace), a qual tem por finalidade monitorar e catalogar os eventos (transações) realizadas dentro SQL Server seja este antes, durante e depois de execução.

Os dados gerados por um evento são exibidos no rastreamento em uma única linha. Esta linha é cruzada por colunas de dados que descrevem o evento em detalhes, estes podem ser armazenados em arquivos ou tabelas.

Bom, agora que você já sabe que iremos utilizar estas duas ferramentas, nada melhor de ver como podemos observar o que vai acontecer quando clicamos no botão New Query, o qual já foi destacado várias vezes anteriormente.


Chegou a hora de ver então o que acontece…..

Para que tenhamos sucesso nesta aventura, vamos estabelecer dois cenários, que devem ser executados em ambientes de teste ou desenvolvimento, conforme apresentados a seguir.

Cenário 1 – Servidor recém inicializado

Execute a sequência de passos apresentados abaixo:

  1. Através da ferramenta Serviços (services.msc) ou SQL Server Configuration Manager, inicie o serviço do seu Microsoft SQL Server (caso o mesmo esteja em execução, realize o procedimento de Stop e depois Start);
  2. Inicializar o SQL Server Management Studio;
  3. Estabelecer a conexão com uma instância ou servidor local, na sua rede ou remoto;
  4. Através do Menu Tools existente no Management Studio, clique na opção SQL Server Profiler para realizar a inicialização desta ferramenta externa, uma tela similar ao SSMS será aberta, conforme apresenta a Figura 1 a seguir:
    Figura 1 – Tela inicial do SQL Server Profiler.
  5. Estabelecer a conexão através do Profiler para o mesmo servidor ou instância conectada anteriormente via Management Studio; e
  6. Logo após estabelecer a conexão no SQL Server Profiler, será aberta a tela entitulada Trace Properties, não iremos realizar nenhuma alteração, vamos clicar diretamente no botão RUN. Desta forma, estaremos iniciando um novo Trace e podemos observar com base na Figura 2 abaixo:Figura 2 – Novo trace inicializado através do SQL Server Profiler.

    Agora nosso cenário esta praticamente preparado .Nota: Observe que uma linha foi adicionada em nosso Trace, a qual apresenta neste momento na coluna EventClass o valor TraceStart, o que indica que nosso trace foi inicializado e esta pronto para ser utilizado, em adicional a coluna StartTime a data e hora da inicialização do trace, esse dado é importante para nos ajudar a observar o quanto de tempo nosso SQL Server no decorrer das diversas transações ele consume, tendo como base também a coluna EndTime.

    Seguindo em frente, deixe o SQL Server Profiler aberto, retorne para o SQL Server Management Studio, caso possível coloque as telas de ambas as ferramentas lado a lado em seu monitor, ou então para facilitar dois monitores, deixando seu ambiente com o uso da opção tela extendida organizando cada ferramenta aberta nas respectivas telas.

De volta ao Management Studio, vamos clicar no botão New Query, operação que vai solicitar ao nosso SQL Server que uma nova sessão “conexão” venha a ser aberta. Observe que vai acontecer no SQL Server Profiler a partir deste momento. 

Conseguiu observar o que aconteceu? Tenho a certeza que sim…

Diversas linhas de eventos disparados pelo SQL Server foram adicionados em nosso trace, essa é uma ação que poderá variar de forma considerável de ambiente para ambiente, principalmente se você estiver realizar o trace em um servidor que acabou de ser inicializado que é o meu caso.

Quando inicializamos o Microsoft SQL Server para se trabalhar, solicitando ao sistema operacional para realizar o Start do serviço, o trace que esta monitorando nosso ambiente será preenchido por um número muito maior de eventos, do que se estivermos realizando o mesmo trace mas em um ambiente que já encontra-se em uso.

A Figura 3 abaixo ilustra o resultado desta ação:Figura 3 – Cenário 1 – Eventos capturados e catalogados no Trace.

Do total de 86 linhas de eventos apresentadas, 85 estão relacionadas com o momento em que eu cliquei no botão New Query disponível no Management Studio.

Vamos agora executar o Cenário 2…..


Cenário 2 – Realizar o trace a um servidor já em execução

Como já estamos com nossas ferramentas abertas, nosso caminho será bem mais curto, caso você queira realizar todas as ações anteriores combinando nas as que serão apresentadas para este cenário fique a vontade.

Execute a sequência de passos apresentados abaixo:

  1. No SQL Server Profiler, clique no botão Clear Trace Window, ou tecle CTRL+Shift+Del;
  2. No Management Studio, clique novamente no New Query; e
  3. Observe o que será catalogado e apresentado no SQL Server Profiler para nosso o trace, que será ilustrado através da Figura 4 apresentada abaixo:

Figura 4 – Cenário 2 – Eventos capturados e catalogados no Trace

Agora que você já esta mais acostumado com o SQL Server Profiler não deve ter ficado tão surpreso com o que foi apresentado por ele. 

Como estamos utilizando a mesma conexão, ou seja mesmo usuário, podemos notar que o número de eventos apresentados em nosso trace será menor, isso indica que o SQL Server já contem neste exato momento um conjunto de dados armazenados em cache que identifica de forma mais rápida nossa conexão e sessão, além disso, todo conjunto inicialmente carregado por ele para se permitir o acesso aos dados e processamento de nossas transações também se encontram criados e alocados nas específicas áreas de cache, o que faz com que seja desnecessário apresentar todo aquele conjunto de eventos realizados por ele.

Importante

Vale ressaltar que este é um comportamento que poderá variar de ambiente para ambiente, de acordo com a forma de acesso, autenticação, conexão, em adicional com a forma que você estará monitorando e apresentando estes eventos.

 


Com isso, chegamos ao final do @02 – O que Acontece – Quando clicamos no botão New Query dentro do Management Studio?

Espero que você tenha observado o que aconteceu quando realizamos a simples ação de solicitar ao SQL Server através do Management Studio que uma nova query, uma nova sessão “conexão” seja aberta.

Basicamente um conjunto de eventos são disparados internamente pelo Microsoft SQL Server para se seja possível preparar e disponibilizar todo o seu conjunto de recursos, nos possibilitando realizar o nosso trabalho da mais variada forma possível.

E ai gostou deste segundo post? Espero que sim.


Mais uma vez obrigado por sua visita, aproveite para acessar as outras sessões existentes no meu blog.

Um forte abraço.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. 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. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. 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 1994 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, entre outros recursos. 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. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC, MIE e MTAC.

Deixe um comentário

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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.