#02 – Para que serve

Ei galera, comunidade e amantes de Banco de Dados, boa tarde.

Sexta – feira, mas que beleza final de semana chegando, dois dias de descanso merecidos, mas isso pra mim não muda em nada, sabe por que? Pois ainda estou de férias, férias (kkkkkkkkkk).

Deixando isso de lado a vida continua, ela não pode parar principalmente a vida tecnlógica, alias essa minha vida tecnológica viva a toda sempre em um ritmo acelerado, e como vocês podem observar nos últimos dias meu blog esta bombando de posts, parece até que estou com mais vontade para interagir com vocês.

Neste segundo post da sessão Para que Serve, vou trazer algo que muitos dos profissionais de banco de dados sempre utilizam naqueles momentos em que tudo parece não dar certo, estou me referindo as boas e velhas Trace Flags(isso não é magia negra, bruxaria ou assombração, isso é tecnologia, kkkkkk) existentes no Microsoft SQL Server desde suas primeiras versões.

Posso dizer com grande tranquilidade, elas são algo mágico que a equipe de engenheiros e desenvolvedores do Microsoft SQL Server está sempre acrescentando e melhorando em cada versão do produto. Ao fazer a escolhar de usar uma, duas ou três trace flags, podemos estar alterando totalmente o comportamento por parte do SQL Server uma sessão, transação, conexão, banco de dados e até mesmo servidor/instância durante o processamento de uma ou mais querys.

No post de hoje, vou apresentar e ilustrar três trace flags pertencentes a lista de trace flags não documentadas, como você deve ter ouvido falar em algum momento, existem diversas trace flag(alguns dizem que são fantasmas existentes no SQL Server) que a Microsoft não apresenta ou possui documentação oficial, ainda mais se pesquisarmos nos próprios sites Microsoft dedicados os produto ou no Books On-Line.

Estou me referindo especificamente as Trace Flags: 3604, 9204, 9292, onde as flags 9204 e 9292 possuem algo em comum que você vai descobrir no decorrer deste post. Então vamos em frente, vamos lá conhecer um pouco mais sobre estas “trace flags fantasminhas”, abaixo destaco um pequeno resumo de cada trace flag, no final dois exemplos de como podemos utilizar cada uma delas no Microsoft SQL Server 2012 ou 2014.

Caso você não possua nenhuma destas versões, utilize os links abaixo para realizar os downloads:


 

Bom divertimento, começa aqui o #02 – Para que serve!!!

  • Trace Flag 3604: Dentre as trace flags desconhecidas ou não documentas a 3604 é bastante comum de ser encontrada na internet em diversos posts, artigos e publicações. Basicamente sua função é apresentar as mensagens geradas pelo SQL Server durante o processo de rastreamento ou monitoramento estatístico na guia de mensagens existentes no Management Studio.
    Quando realizamos habilitamos esta flag para uso através do comando DBCC TraceON (3604) esta orientando o SQL Server a direcionar as mensagens oriundas ou resultando do rastreamento estatístico para guia de mensagens, desta forma poderemos fazer a análise destas mensagens. Para ativar a trace flag utilize o comando DBCC TraceON (3604) ou DBCC TraceOFF (3604) para desativar, ou se preferir utilize a opção QueryTraceOn em sua respectiva query.

 

  • Trace Flag 9204: Esta trace flag pode ser considerada um dos elementos fundamentais para os profissionais de banco de dados, no momento em que estão realizando uma análise ou monitoramento da performance do SQL Server durante a execução de uma query. A 9204 permite entender e apresentar como podemos saber quais as estatísticas na verdade estão sendo utilizadas pelo otimizador de querys para calcular ou estimar o nível de cardinalidade. Desta maneira, torna-se possível identificar possíveis problemas por parte do SQL Server em obter dados relacionados. Ativando a Trace Flag 9204 o SQL Server vai apresentar na guia de mensagens existem no Management Studio um pequeno cabeçalho sobre objetos de estatísticas totalmente carregado e usado pelo otimizador de querys para estimativar o número de cardinalidade gerado e consumido para obtenção dos dados requeridos por parte da transação executado. Este cabeçalho é conhecido como Stats loaded.
    Para ativar esta a flag utilize o comando DBCC TraceON (9204) ou DBCC TraceOFF (9204) para desativar, ou se preferir utilize a opção QueryTraceOn em sua respectiva query.

 

  • Trace Flag 9292: No momento em tomamos a decisão de utilizar a flag 9292, orientamos o SQL Server a apresentar todos os objetos estatísticos considerados úteis por parte do plano de execução para realizar o processamento e retorno dos dados. O uso da trace flag 9292 dentro de uma sessão ou query específica, nos ajuda a entender e conhecer como as estatísticas e seus elementos podem mudar totalmente a maneira que o plano de execução é idealizado, armazenado e processado.
    Através da flag 9292 podemos obter um relatório sobre as estatíticas para cada objeto envolvido em nossa query, onde estes supostos objetos devem ser considerados úteis, ou melhor dizendo válidos e aplicáveis no decorrer do caminho realizado até a apresentação do resultado.
    Esta é uma trace flag que pode ser usado durante a resolução de problemas, onde sua função é apresentar na guia de mensagens do Management Studio, um pequeno cabeçalho contendo informações estatísticas sobre cada componente útil e válido para formas os dados estatísticos de processamento da query. Este cabeçalho é conhecido como Stats header loaded.
    Para ativar a trace flag utilize o comando DBCC TraceON (9292) ou DBCC TraceOFF (9292) para desativar, ou se preferir utilize a opção QueryTraceOn em sua respectiva query.

 


Conforme destacado no início deste post, vou apresentar dois exemplos básicos de como podemos fazer uso destas trace flags:

— 1 – Exemplo – Utilizando as Trace Flags: 3604, 9204 e 9292 na sessão através do comando DBCC TraceOn/TraceOff —

Use [AdventureWorks2012]
Go

DBCC FreeProcCache
Go

DBCC TraceOn (3604)
DBCC TraceOn (9292)
DBCC TraceOn (9204)

Select * From Person.Person
Where lastName like ‘D%’

DBCC TraceOff (3604)
DBCC TraceOff (9292)
DBCC TraceOff (9204)
Go

— 2- Exemplo – Utilizando as Trace Flags: 3604, 9204 e 9292 de forma específica na query através da opção QueryTraceOn —

Use [AdventureWorks2012]
Go

DBCC FreeProcCache
Go

Select * From Person.Person
Where lastName like ‘D%’
option
(
querytraceon 3604,
querytraceon 9292,
querytraceon 9204
)
Go

Ótimo que estão os exemplos, podemos observar através da Figura 1 apresentada a seguir como os respectivos cabeçalhos são apresentados pelas Trace Flags 9292 e 9204 na guia de mensagens do Management Studio, vale ressaltar que a importância da trace flag 3604 para ativar apresentação de informações ocultas na guia de mensagens do Management Studio.

Cabeçalhos-Trace-Flags
Figura 1 – Cabeçalhos gerados na utilização das Trace Flags 9292 e 9204.

 

 

 


 

Ficou interessado em saber mais sobre as Trace Flags? Acesse um dos links apresentados abaixo e descubra mais sobre estas fantásticas funcionalidades presentes e também “escondidas” no Microsoft SQL Server.

Links:


 

 

E ai gostou do #02 – Para que serve, eu gostei, claro sou suspeito a falar, mas torço e espero que você tenha gostado, de preferência de todo post, mas isso não for possível, quem sabe pelo menos uma parte espero que tenha chamado a sua atenção.

Com isso chegamos ao final de mais um Para que Serve, agradeço sua participação e visita ao meu blog. Não deixe de contribuir com críticas, sugestões, comentários, opiniões, enfim contribua também interagindo cada vez mais proporcionando esta troca de conhecimento.

Um grande abraço, sucesso, nos encontramos em breve.

Tchau.

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.

2 comentários em “#02 – Para que serve”

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