SELECT CAST (power(CrazyIdeas, Curiosity) * (RealLifeExperience + MyMistakes)) / FreeTime) AS VARCHAR(MAX)) FROM MyBrain WITH (NOLOCK, INDEX('idx_Neuron')) WHERE ThingsIThinkIKnow in ('SQL Server', 'DB2', '.NET', 'Cloud')
terça-feira, 15 de maio de 2012
SQLServerDF - Material do evento sobre xEvents
Hoje nós realizamos o 13o encontro do grupo SQLServerDF, onde fiz uma apresentação de 2 horas sobre xEvents. Publiquei no skydrive o PDF e os scripts utilizados na apresentação. Você pode fazer o download aqui.
Extended Events deve ser um dos recursos mais fantásticos, porém menos utilizados do SQL Server. Muitas vezes acostumamos com uma maneira de atacar um problema e esquecemos que podem existir abordagens mais eficientes, o que é uma pena.
Poder apresentar para o grupo e ter a chance de estudar mais a fundo tecnologia, é um daqueles momentos onde você se questiona porque não está utilizando todo dia o xEvents. A partir de agora eu, e espero que o restante do grupo, possa explorar a fundo este recurso, principalmente no SQL Server 2012.
Até um próximo encontro do grupo!
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
Marcadores:
Eventos,
Scripts,
SQLServerDF,
xEvents
sexta-feira, 11 de maio de 2012
ICoFCS em Brasília
Hoje em dia é fácil encontrarmos eventos e mais eventos técnicos espalhados pelo Brasil, às vezes eu acho que temos muito, depois acho que temos poucos, critico a qualidade de alguns, enfim, têm para todos os gostos. Mas uma coisa é verdade para mim, acabo por ficar viciado em participar somente de eventos da nossa área de trabalho (ex.: SQL Server e .NET) e acabamos por perder belas chances de expandir o horizonte e trabalhar com novas ideias.
Em 2010 eu fui convidado para ministrar uma matéria em um mestrado da UnB para peritos da polícia, onde tive a chance de estudar e falar sobre o tema “Forense no SQL Server”. Nem preciso comentar que foi um belo desafio e muito recompensador, inclusive segurança no SQL Server é um dos meus atuais temas de estudo.
Outra coisa que tenho feito pouco, mas considero muito importante, é a leitura periódica de artigos científicos, pois os trabalhos que fazemos no dia-a-dia usualmente estão muito longe do que podemos encontrar em diversos papers do ACM ou IEEE.
E o que essas três coisas têm a em comum? Ontem eu recebi de um professor da UnB a notícia que o próximo ICoFCS (INTERNATIONAL CONFERENCE ON FORENSIC COMPUTER SCIENCE) será realizado em Brasília!
http://www.icofcs.org/2012/
Uma ótima oportunidade de encontrar em um evento assuntos diferentes, estar próximo da academia e abrir os horizontes. Já coloquei na agenda e já estou fazendo meus planos para participar. Geek é geek, não precisa ser só de SQL Server...
Por curiosidade eu estava passeando no site do evento em 2011 e vi que um dos papers aprovados foi o “Finding Detached Microsoft SQL Server Database Files”, de um dos ex-alunos do curso de mestrado! Inclusive esse assunto foi explorado no trabalho dele que me foi entregue, onde através da assinatura dos arquivos SQL Server era possível descobrir arquivos escondidos. Bacana ou não?
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
terça-feira, 24 de abril de 2012
Instalação do BDD falha na checagem dos requisitos
Faz alguns meses eu fui instalar o BDD na máquina nova e me deparei com um problema: a checagem dos pré-requisitos não deixava a instalação continuar, alegando que estava faltando um dos pré-requisitos. Para a apresentação (e na pressa) eu usei uma máquina antiga que tinha o BDD e deixei esse problema de lado.
Nessa semana vou usar o BDD para testar desempenho de alguns pacotes em um cliente e novamente estava lá o erro de instalação do BDD de 32 bits, o que é necessário para você montar o seu pacote, já que o Visual Studio 2008 é um processo de 32 bits.
A mensagem do erro é “Product: Microsoft SQL Server SSIS Balanced Data Distributor (x86) -- The installation is not successful. Check the following prerequisites: 1. Either Integration Services or BIDS has to be installed. 2. The version of these components has to be either SQL Server 2008 SP2 (or future SPs) or SQL Server 2008 R2 (or future SPs).”
Validei novamente, todos os pré-requisitos instalados e o diabo da mensagem aparecendo. Como não têm nenhum log de instalação e neste momento não consigo nem saber em qual validação de componente ele está parando, além da documentação não me dar uma lista extensiva das checagens, só me restou a ir para o meu mecanismo de busca favorito...
Olha aqui que belezura, viva os fóruns e blogs!
Thread no MSDN: http://social.msdn.microsoft.com/Forums/en/sqlintegrationservices/thread/bbbc2366-5e76-4a06-af48-23c188a2506b
Link que está na thread: http://joshgallagher.info/2012/01/25/installing-balanced-data-distributor-on-sql-server-2008-r2-sp1/
Mesmo com o diabo da mensagem falando “SQL Server 2008 R2 (or future SPs)” é necessário “retroceder” a versão do SQL Server 2008 R2 para o RTM editando chaves de registro, caso você tenha instalado o SP1 (e possivelmente algum hotfix ou cummulative update). Outra opção seria desinstalar o SP1, instalar o BDD e instalar o SP1... Fiquei com a primeira abordagem. Mas que beleza!
Como eu já falei do BDD antes, resolvi postar sobre o assunto e fica mais uma referência para a solução deste vacilo do setup. Tomara que possa te ajudar ou pelo menos que o seu mecanismo de busca melhore o ranking da resposta postada no fórum! :-)
PS: E CLARO, não se esqueça de voltar as chaves de registro ao valor original. Ugh!
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
Marcadores:
BDD,
Install,
SSIS,
Troubleshooting
sexta-feira, 20 de abril de 2012
Analise o cenário e me diga qual o problema...
Ontem um amigo MVP me mandou um e-mail de uma possível consultoria em SQL Server, falando de um cliente com alguns problemas de desempenho no SQL Server e como poderíamos ajuda-lo. Não fui ao cliente e nem vi o ambiente, não temos nem proposta de trabalho, só conseguimos bater um papo hoje com o cliente, o que corroborou ainda mais minhas teorias, então resolvi escrever este post sobre o assunto.
Junto com o e-mail tinha algumas informações do ambiente e montei uma análise (rápida e suja) sobre um dos problemas que o cliente está tendo, então compartilho com vocês o cenário e minha análise. Sugestão: leia o problema e tente entender qual é a zica e qual seria sua sugestão...
Cenário
Acho que não dava para ser mais breve, vamos lá...
• Servidor com 64GB de RAM e 16 processadores
• SQL Server 2005 SP4 x86 Standard Edition
• AWE Habilitado
• Max Server Memory = 60.000
• Max Worker Threads = 0
Além disso, o cliente mostrou uma tela com uma série de requisições bloqueadas por um wait type bem divertido: RESOURCE_SEMAPHORE_QUERY_COMPILE.
Em um call que fizemos hoje, ele mencionou que já trabalharam em um servidor com 32GB de RAM e fizeram um acréscimo de hardware com mais processadores e 64GB, porém o comportamento não mudou. Então eu pergunto:
O que justifica o cliente estar vendo o wait type RESOURCE_SEMAPHORE_QUERY_COMPILE? Como você atacaria o problema?
TEMPO
PARA
VOCÊ
PENSAR
UM
POUCO,
OK
???
???
!!!!
!!!!
RESOURCE_SEMAPHORE_QUERY_COMPILE - Este é o semáforo de compilação do SQL Server, é a forma que ele tem para impedir que a otimização de consultas acabe com a memória do servidor, então ele cria alguns gateways (small, medium e large) que controlam o número de compilações simultâneas dentro de cada grupo. Os thresholds e número de compilações são definidos de acordo com os recursos disponíveis para o SQL Server... Então está ótimo, pois o SQL Server têm definido 60.000MB para o Buffer Pool!
Opa opa opa, calma lá! Aqui temos um probleminha, pois estamos trabalhando com o AWE (pois o SQL Server é 32 bits) e sabemos que somente o data cache pode se beneficiar dessa extensão. E o resto dos memory clerks, como ficam? Bom, eles têm que disputar o que sobra dentro dos 2GB de endereçamento virtual de user mode, isto é, tirando o MemToLeave temos aproximadamente 1.6 para todos os outros clerks, provavelmente até menos se descontarmos outras coisinhas.
Como também o plan cache está nessa pressão, caso ele não esteja sendo bem utilizado, provavelmente está forçando ainda mais o número de compilações, aumentando a probabilidade de vermos mais do wait type em questão. Realmente um daqueles problemas de cobertor curto.
Aproveitando, acho que aí fica claro porque não houve grande ganho com o upgrade de hardware, pois a contenção está em uma área de memória que não se beneficia de mais memória utilizada através de AWE.
Sugestões...
A sugestão padrão é migrar para arquitetura de 64 bits, pois aí o endereçamento virtual é capaz de suportar todos os memory clerks e dividir melhor a proporção utilizada por cada um deles.
Outra opção, mais limitada, é tentarmos aliviar pontualmente a dor que eles estão sentindo, tentando aumentar a eficiência do plan cache, parametrização de consultas, etc. De forma que consiga aliviar um pouco a pressão entre os clerks e minimizar o número de compilações necessárias.
Muitos poderiam sugerir habilitar o /3GB, mas aí com 60GB de BPool o problema seria outro e o cliente provavelmente experimentaria o problema de PTE starvation.
No fundo não é um problema muito trivial, mas acho que o diagnóstico está bacana para um cliente onde nem tocamos no ambiente. Tomara que ele consiga esperar por um buraco na nossa agenda, estou querendo “sujar as mãos” e fazer um tuning pesado com eles. Afinal, nos disseram que duas empresas de consultoria já passaram por lá...
Assunto show! E que os alunos do Internals já sabem, afinal falamos sobre isso nos módulos 01 e 02! Curiosamente estamos com outro e-mail discutindo outro ambiente x86, dois no mesmo dia, para quem pensou que não veria muito mais casos de 32 bits.
Abraços,
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
Marcadores:
Memory,
SQL Server,
Troubleshooting
[SQLServerDF] Encontro XIV - Aplicando o SQL Server Resource Governor
Então é hora de pegar o embalo e vencer a inércia. Além do encontro de Maio sobre xEvents, aproveito para anunciar o encontro XIV do SQLServerDF.
As informações sobre o encontro são:
Local: Auditório da Microsoft - Edifício Corporate Financial Center, sala 302 - Brasília
!! DATA ATUALIZADA !!
Eu estarei fora de Brasília na data original do encontro (19 de Junho), então segue nova data...
Data e horário: 26/06/2012, 17:00h ~ 19:30h
Tema: Aplicando o SQL Server Resource Governor
Descrição: Esta sessão têm por objetivo explicar o funcionamento do Resource Governor, entendendo seus componentes: grupos, pools e função de classificação. Também vamos discutir um pouco do funcionamento interno e o mais importante, como utilizar o resource governor. Em quais cenários ele ajuda? Como trabalhar a função de classificação? Como fazer ajustes dinamicamente com o RG? E para finalizar, vamos falar das melhorias que temos no SQL Server 2012.
Palestrante: Luciano Caixeta Moreira
Mini-bio:
Luciano Caixeta Moreira é fundador da empresa Sr. Nimbus, onde atua como consultor e instrutor SQL Server/.NET. Trabalhou na Microsoft Brasil entre Janeiro de 2006 e Março de 2009, onde atuou como Premier Field Engineer de SQL Server e especialista em desenvolvimento. Formado em ciência da computação pela Universidade de Brasília, ele atua com desenvolvimento, consultoria e treinamento de tecnologias Microsoft desde 2000, sempre focado no desenvolvimento de soluções e banco de dados. Luciano obtém as certificações MCP, MCAD .NET, MCSD .NET, MCDBA, MCTS (SQL Server 2005/2008, .NET 3.5, ADO.NET 3.5 e ADO.NET 4.0), MCITP (SQL Server 2005/2008) e MCT, nomeado MVP de SQL Server em Julho/2010, também e escreve em seu blog: http://luticm.blogspot.com
Quer participar? Então mande para o grupo SQLServerDF um e-mail confirmando sua presença, pois a capacidade do auditório é limitada, portanto atendemos por ordem de recebimento de e-mails!
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
As informações sobre o encontro são:
Local: Auditório da Microsoft - Edifício Corporate Financial Center, sala 302 - Brasília
!! DATA ATUALIZADA !!
Eu estarei fora de Brasília na data original do encontro (19 de Junho), então segue nova data...
Data e horário: 26/06/2012, 17:00h ~ 19:30h
Tema: Aplicando o SQL Server Resource Governor
Descrição: Esta sessão têm por objetivo explicar o funcionamento do Resource Governor, entendendo seus componentes: grupos, pools e função de classificação. Também vamos discutir um pouco do funcionamento interno e o mais importante, como utilizar o resource governor. Em quais cenários ele ajuda? Como trabalhar a função de classificação? Como fazer ajustes dinamicamente com o RG? E para finalizar, vamos falar das melhorias que temos no SQL Server 2012.
Palestrante: Luciano Caixeta Moreira
Mini-bio:
Luciano Caixeta Moreira é fundador da empresa Sr. Nimbus, onde atua como consultor e instrutor SQL Server/.NET. Trabalhou na Microsoft Brasil entre Janeiro de 2006 e Março de 2009, onde atuou como Premier Field Engineer de SQL Server e especialista em desenvolvimento. Formado em ciência da computação pela Universidade de Brasília, ele atua com desenvolvimento, consultoria e treinamento de tecnologias Microsoft desde 2000, sempre focado no desenvolvimento de soluções e banco de dados. Luciano obtém as certificações MCP, MCAD .NET, MCSD .NET, MCDBA, MCTS (SQL Server 2005/2008, .NET 3.5, ADO.NET 3.5 e ADO.NET 4.0), MCITP (SQL Server 2005/2008) e MCT, nomeado MVP de SQL Server em Julho/2010, também e escreve em seu blog: http://luticm.blogspot.com
Quer participar? Então mande para o grupo SQLServerDF um e-mail confirmando sua presença, pois a capacidade do auditório é limitada, portanto atendemos por ordem de recebimento de e-mails!
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br
Marcadores:
Comunidade,
Eventos,
PASS,
SQLServerDF
Assinar:
Postagens (Atom)

