sexta-feira, 30 de novembro de 2012

[SQLServerDF] Material do encontro XV - ColumnStore Index

Ontem tivemos novamente um bom público para nossa sessão do SQLServerDF, mesmo véspera de feriado em Brasília. Dessa vez o Luan quem foi o palestrante e mandou muito bem, falando sobre columnstore index. E de quebra ainda distribuiu artigos e sorteou um arc mouse da Microsoft, top!
Ele me encaminhou o conteúdo da palestra que publico no skydrive (https://skydrive.live.com/redir?resid=E145F7753042D628!414).
E não deixe de dar uma olhada no seu blog: http://luanmorenodba.wordpress.com/.
Agora é aguardar a próxima palestra que acontecerá em Janeiro/2013, onde vamos ouvir um pouco sobre AlwaysOn, focando em Availability Groups.
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

quinta-feira, 29 de novembro de 2012

Palestras no SQL Internals Ops

Depois das 24 horas de SQL Server na próxima semana teremos mais um evento, dessa vez presencial, o SQL Internal Ops Conference. Você pode ver os detalhes do evento em: http://sqlinternalopsconference-web.sharepoint.com/Pages/default.aspx
Eu novamente estarei palestrando juntamente com nosso amigo geek Ivan Lima (http://ivanglima.com/) sobre o SQLOS. Dessa vez em duas sessões e para um registro mais completo coloco as descrições que enviamos quando nos registramos no evento.
Conhecendo o SQLOS
Na arquitetura do SQL Server existe um conjunto de elementos que são agrupados como parte do SQLOS, ou SQL Server Operating System. São componentes fundamentais para o funcionamento do SQL Server e integração com o Windows, entre eles: NUMA nodes, schedulers, workers, memory clerks e comunicação com o subsistema de I/O.
Essa sessão tem por objetivo apresentar alguns desses elementos e como eles interagem entre si, fornecendo uma visão teórica e clara do mecanismo de agendamento, uso de memória, operações de I/O, esperas (waits), etc.
Palestrantes: Luciano Moreira e Ivan Lima
Nível: Avançado

Explorando o SQLOS com o windbg
Depois de apresentar os mecanismos básicos do SQLOS, essa sessão tem por objetivo expor de forma prática como é a implementação e uso desses elementos. Para conseguirmos fazer isso vamos trabalhar com diversas demonstrações, analisando DMVs do SQL Server e usando o windbg, utilizando breakpoints e explorando call stacks. Não recomendado para aqueles de coração fraco...
Palestrantes: Ivan Lima e Luciano Moreira
Nível: Avançado++

Teremos muitas figuras conhecidas do SQL Server no Brasil e tenho certeza que teremos excelentes palestras técnicas. Nas sessões dos profissionais da Nimbus, já que é um evento SQL Internal Ops, achamos por bem mostrar muito internals. E sim, vamos ver muitos detalhes, pena que o tempo é limitado, mas mesmo assim será interessante.
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

segunda-feira, 26 de novembro de 2012

Vídeos dos treinamentos on-demand

Olá SQLGeek, tudo bem?
Você que acompanha a Sr. Nimbus e seus consultores deve estar ciente do recente anúncio dos treinamentos on-demand, onde pode ficar um mês assistindo por streaming os vídeos que compõe o curso. Muita coisa boa para estudar na hora que você escolher, onde quiser.
Pois bem, hoje é o dia em que marcamos para disponibilizar os vídeos, então ontem disparamos o e-mail com as instruções de acesso para os profissionais que já estão se capacitando e muitos estão neste momento tendo o primeiro contato com o material que produzimos.
Os cursos que fazem parte dessa iniciativa são:
·         Transaction Log Internals
o   Autor: Luciano Moreira
o   Duração: 5h 16min
·         Planos de Execução I
o   Autor: Fabiano Amorim
o   Duração: 5h 51min
Para você ter uma noção do que produzimos, nós criamos dois vídeos curtos que mostram um pouco do que são os treinamentos on-demand na Nimbus.
·         Transaction Log Internals: http://vimeo.com/54102084
·         Planos de Execução I: http://vimeo.com/54241704
O Fabiano já falou em seu blog um pouco da produção do treinamento de planos de execução: http://blogfabiano.com/2012/11/26/demonstrao-execplans-on-demand/.
Da minha parte, digo que produzir conteúdo dá um trabalho muito grande, bolar todos esses exemplos, criar PPTs mais didáticos já que não temos o quadro branco e a interação de sala de aula, mas é tudo muito divertido. Sem contar as noites em claro para conseguir gravar os vídeos sem ruídos externos (a Nimbus ainda não dispõe de um estúdio de gravação! hehehe) e ainda ter que conciliar isso com todos os outros trabalhos de consultoria e cuidar da empresa... Ufa!
Espero realmente que vocês possam aproveitar bem o material e constatar que produzimos algo muito bom, que vai poder te ajudar nessa caminhada de se capacitar e estar entre os melhores. No fim ainda ficam muitas ideias para os próximos treinamentos on-demand e muito aprendizado, espero em breve trazer mais notícias e detalhes dos treinamentos on-demand.
Antes que eu me esqueça, tenho que citar uma coisa que me impressionou demais. Para demonstrar o que é um acesso sequencial vs. randômico o Fabiano abriu um HD e disparando consultas no SQL Server mostrou como a otimização de um operador do plano de execução pode melhorar o tempo de acesso. Galera, numa boa, já vi muita coisa nesse mundo, e posso afirmar que algumas coisas que a Sr. Nimbus está produzindo você não encontra facilmente por aí...
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

quarta-feira, 21 de novembro de 2012

24 hours of PASS - Portuguese

Na próxima semana teremos mais 24 horas de sessões para o PASS, só eu em Português. Você pode ver os detalhes do evento em: http://www.sqlpass.org/24hours/portuguese2012/Home.aspx
Eu estarei palestrando juntamente com nosso amigo geek Ivan Lima (http://ivanglima.com/) sobre indexação no SQL Server. Qual a palestra?
Sessão: MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO.
Descrição: Muito se fala por aí sobre melhores práticas de indexação, recomendações genéricas para fillfactor, limites de fragmentação para definir se devemos fazer um reorganize ou rebuild, operações online, uso da tempdb.
Data e hora: 27/11/2012 – 18:00h
Os SQL geeks da Sr. Nimbus (eu, Ivan, GB e Fabiano) estão bem envolvidos com o evento, e tivemos 3 sessões aprovadas. Além da minha temos: T-SQL Expert – Escrevendo códigos “like a Boss” e Como NÃO modelar seu banco de dados – histórias de terror contadas por um DBA.
Temos muitas figuras conhecidas do SQL Server no Brasil e também nosso amigos do além mar marcando presença com palestras muito interessantes! Veja todas as palestras e escolha aquelas (ou todas) que te interessam - http://www.sqlpass.org/24hours/portuguese2012/Sess%C3%B5es.aspx.
Treinamento de graça e de qualidade! Faça seu cadastro e compareça, pois se você não investe na sua capacitação não vai ser seu chefe ou eu que vou fazer isso...
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

terça-feira, 20 de novembro de 2012

SQL 2008 MCM - Knowledge Exam

Não tenho nem palavras para descrever a felicidade ao ver a imagem abaixo...

Passei na prova - SQL Server 2008 Microsoft Certified Master: Knowledge Exam!
Isso não quer dizer que obtive a certificação MCM? NÃO! Longe disso, pois ainda tenho que fazer o laboratório para essa certificação. Então dado ao grau de dificuldade que espero encontrar no próximo exame, considero apenas 25% do caminho completo, mas é um primeiro passo que dou em direção a essa certificação.
Não vou entrar em detalhes sobre a prova, mas acho que nem preciso dizer que foi a prova mais difícil que já fiz, com muito troubleshooting, tuning e cenários bbbeeemmm complexos. E cai de tudo, replicação, disaster recovery, log shipping, cluster, mirroring, hyper-v, T-SQL tuning, indexação, storage, memória, waits, análise de planos, plan cache, etc.
Quanto tempo eu levei para me preparar para essa prova? Sem brincadeira, alguns anos. Digo isso porque são muitos assuntos e hoje não acredito que uma pessoa somente lendo diversos livros vai conseguir em 6 meses se preparar por completo para a prova, sempre vai faltar algo. Muita experiência com o SQL Server é fundamental, sempre com um estudo contínuo e uma visão abrangente de outros assuntos, como storage e virtualização.
Uma coisa que eu recomendo: conheça o funcionamento interno do SQL Server. Mesmo na minha prova não tendo nenhuma pergunta direta sobre o SQLOS ou outros detalhes sombrios do SQL Server, em diversas questões eu não tinha certeza da resposta (quase a prova inteira! hahaha), mas pela lógica da engine eu pude escolher opções que me pareciam mais corretas.
E que venham o próximo desafio: MCM Lab Exam! Mas agora eu vou curtir um pouco essa conquista e começar a pensar na grande lista de preparação. E claro, pense em um #SQLGeek feliz neste momento!
Quer saber mais sobre a certificação MCM para SQL Server 2008: http://www.microsoft.com/learning/en/us/certification/master-sql.aspx
Ah, eu fiz a prova na semana seguinte ao PASS Summit 2012. Em tempo, agradeço ao Bob Taylor pelo apoio para eu fazer esta prova!

!!!!!!      ATUALIZAÇÃO      !!!!!!

Pessoal, gostaria de colocar aqui mais algumas palavras. Muito obrigado por todos comentários, e-mails e encorajamento que recebi. É fantástico ter por perto profissionais como vocês e um prazer imenso fazer parte de um grupo tão bacana, a #sqlfamily.

Tenham certeza que depois que tudo que recebi, estou com um ânimo ainda maior para correr atrás do lab para o MCM! 

Espero continuar contribuindo demais com essa comunidade técnica e ouvir de outros tantos como foi a saga para o MCM de cada um.

Abraços

sábado, 10 de novembro de 2012

PASS Summit 2012 – Parte VII

Sexta-feira – 09/11/2012
Chegamos ao último dia de evento, já estou começando a olhar para trás e dizer que como esperado o evento foi realmente fantástico, o melhor dos últimos anos e aquele em que eu mais conversei com pessoas de outros países, também com o time de liderança do PASS, o número de brasileiros no evento aumentou e, claro, muitas palestras de alto nível.
No último dia não temos keynote, saí cedo do hotel e dessa vez tomei café da manhã no evento, aproveitando para passar cedo no local de certificação e conversar com o Bob Taylor, responsável pelo blog dos mestres (http://blogs.technet.com/b/themasterblog/), e que trabalha com o programa inteiro. Um senhor muito simpático e simples, gostei demais de conversar com ele sobre a volta do treinamento para masters, upgrade, etc. Depois disso parti para as minhas sessões...
·         DBA-407-C: Troubleshooting SQL Server 2012 Performance with Extended Events
o   Vou ser direto, uma sessão nível 400 é time de suporte eu realmente espero que seja nível 400, não 200/300. Troquei uma outras sessão 400 por essa pois ela poderia ser mais útil, mas o nível foi básico.
o   Para quem conhecia pouco sobre XE a apresentação foi legal, porém os exemplos poderiam ter sido mais complexos e menos material introdutório. Acabei anotando pouco.
o   SQL Server 2012 XE
§  Query_hash, query_plan_hash
§  600+ events
§  Simplified target names
§  Single XEL file
§  XeProfiler (UI)
·         Configuration and data analysis
§  Sp_server_diagnostics
o   Best Practices
§  Avoid: NO_EVENT_LOSS
§  Default 3 buffers x 1.3MB ~ 4MB
§  High end machines - MEMORY_PARTITION_MODE=PER_NODE PER_CPU
·         Increase MAX_MEMORY
§  Avoid expensive events
·         Entre as sessões eu aproveitei para conversar mais um pouco com o PASS o que me atrasou 10 min para a próxima sessão e uma das mais esperadas por todos...
·         DBA-410-S: Big Data Meets SQL Server – Dr. David Dewitt
o   Dewitt é um dos poucos technical fellows da Microsoft e uma das maiores referências acadêmicas em banco de dados. Desde que vi uma apresentação dele não perco mais, é impressionante como ele consegue simplificar os mais diversos conceitos e transformar seu tempo em uma aula fantástica.
o   Sessões como essa eu fecho o notebook para prestar muita atenção no que é falado, por isso não tenho anotações por enquanto (estão em papel), mas a palestra foi transmitida ao vivo para quem quisesse assistir (muitos tweets com o link).
o   Novamente uma sessão magnífica, acho que todo mundo tem que assistir ao dr. Um dia e vou colocar seus papers na minha lista recorrente de leitura (http://pages.cs.wisc.edu/~dewitt/index.html).
o   By the way, Polybase rocks!
·         AD-400-HD: Query Optimizer Deep Dive – Paul White
o   Como eu esperei por essa sessão, e o Paul White não decepcionou. Com uma apresentação muito bem estruturada e boas demos ele cobriu do início ao fim os conceitos e detalhes do query optimizer.
o   Curioso é que ele poderia ter feito uma sessão nível 500, você via ele se contendo para não entrar em muitos detalhes, e três horas foi pouco. Espero que em 2013 ele venha com a continuação dessa sessão, “Going deep with QO”.
o   As anotações da sessão ainda serão consolidadas, mas de antemão eu digo que nunca anotei tantos trace flags em uma só sessão, principalmente sobre o mesmo tema. E não sei se ele disponibilizará o PPT e demos em seu blog, mas se o fizer podem pegar, pois vale ouro.
o   Queria que o Fabiano Amorim estivesse por aqui, se tudo der certo em 2013 estaremos todos da Sr. Nimbus no Summit (isso, quero fechar a Nimbus por 1 semana). J
·         Por fim eu ia na sessão do Alan Hirt sobre Failover Cluster Instances mas ela foi cancelada, então dei uma passada na sessão DBA-502: Creating a SQL Server Best Practices Document.
o   Sessão 500 para criação de documento?! Eu tinha que passar lá, e deve ter sido algum erro, pois fiquei um pouco lá e não vi nada de 500, estava mais para 200 ou 300.
o   Cansado como estou saí da sessão, encontrei o Laerte conversando com o Edwin Sarmiento (MVP) e aproveitei para conhece-lo pessoalmente.
O que não posso deixar de destacar foi que hoje tivemos o primeiro brasileiro fazendo uma sessão no PASS, nosso amigo Laerte Junior com uma lightning talk de Powershell. Pelos feedbacks do pessoal parece que foi bem legal e com certeza eu vou chegar nos DVDs para passar meu feedback, e ele me perdoa por eu estar ouvindo o Dewitt no mesmo horário. J
E o PASS Summit 2012 chegou ao fim, muito aprendizado, novos amigos e muitas novidades por vir. Agora é continuar estudando e levar isso para o Brasil, comunidade, Nimbus e clientes precisam de muito do que vimos por aqui. Para quem nunca veio ao Summit e acha que é só passeio, vai sonhando, participar de tudo isso cansa muito (pode perguntar para quem veio), mas todo o investimento é válido. Espero sinceramente que você se programe e esteja em 2013 na cidade de Charlotte, escrevendo seus próprios posts.
Gastos do dia:
·         Refeições (valores aproximados)
o   Almoço: fornecido pelo evento.           
o   Jantar: cada um por si, ainda não jantei então vou gastar $X.
Abraços e nos vemos em alguns dias, pois vou aproveitar e descansar um pouco...
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

sexta-feira, 9 de novembro de 2012

PASS Summit 2012 – Parte VI

Quinta-feira – 08/11/2012
Mais um dia de PASS Summit, acordamos, café da manhã reforçado, caminhada de 15 minutos até o centro de convenções, mais um café e pronto para as sessões. Vou seguir o mesmo padrão de ontem.
·         Keynote
o   Esse fez jus a minha opinião sobre keynotes, só deveria haver 1 por evento, passar por todos os destaques rapidamente, ganhar os aplausos e depois partir para as sessões que vão detalhar o que foi mostrado.
o   Não gostei do keynote e parece que o feedback em geral não foi muito positivo, então nada a acrescentar.
·         AD-501-S: Query Tuning Mastery: The Art and Science of Manhandling Parallelism – Adam Machanic
o   Outro palestrante que sempre assisto e novamente mostrou para que veio, com uma sessão muito bem preparada, ótimas demos e explicações claras, com certeza estará listada entre uma das melhores sessões do PASS neste ano.
o   Ele quebrou a apresentação em 3 partes: nivelamento, problemas com paralelismo e o seu APPLY pattern.
o   Ele comentou sobre a lei da Amdahl (http://en.wikipedia.org/wiki/Amdahl's_law) que me fez lembrar os tempos de faculdade.
o   Sabia que usar uma função escalar inibe o uso de paralelismo pelo query optimizer? E que existem mais uma série de coisas que tem esse comportamento?
o   Foram discutidos alguns “problemas” ou preconceitos (como ele chama) do query optimizer com alguns operadores, e como usar alguns truques ou formas diferentes de escrever a consulta para resolver o problema.
o   Trace flag 8649 é sua amiga quando você quer ver um plano paralelo
o   64 threads é o limite do SQL Server para paralelismo
o   Problemas com o cálculo do custo com operações de compute scalar podem acontecer (o QO sempre acha que eles serão baratos).
o   Muito cuidado com o desbalanceamento dos registros entre as threads, imagina como seria legar ver 8 threads trabalhando, uma com 10000000 registros e todas as outras com 0 registros? Cuidado x2! Repartition é seu amigo.
o   Por fim foi explorado um padrão que o Adam tem usado por anos em seus projetos de BI, onde ele usa o APPLY para gerar planos com nested loop deixando como o lado de dentro (abaixo) do operador uma zona paralela, garantindo na outer table uma boa distribuição dos dados entre as threads. Muito bonito e elegante a solução.
o   No fim uma consulta serial que executava em 27 foi otimizada em uma série de passos para levar apenas 10 segundos, no mesmo hardware.
o   Pelos comentários já deu para ver que tenho muitas anotações e grandes exemplos, que serão postados em seu blog, então vocês podem brincar também.
·         BIA-306-M: How Klout Changed the Landscape of Social Media with Hadoop and BI – Denny Lee e Dave Mariani
o   Sempre é bom ver uma sessão que sai da sua zona de conforto, então nada melhor que ouvir sobre Hadoop, pig, hive, node.js, etc.
o   A arquitetura de referência utilizada pelo Klout (estudo de caso) utiliza 150 máquinas com hadoop, uma série de outros componentes e um cubo no SSAS 2012 com 4TB, que é acessado pela aplicação.
o   Para o Klout estamos falando de vários milhões de registros, com por exemplo, a dimensão de usuários com 450 milhões de registros e 12 milhões de eventos (registros) por dia (o que seria a tabela de fato), com retenção de 90 dias.
o   Vou colocar aqui algumas das anotações que eu fiz, então talvez você não consiga tirar nada de útil, pois meu único objetivo é que seja relevante para mim, não para vocês (sorry!).
o   Doesn´t throw data out, write and later decide how to access and query it
o   Event tracker architecture
§  Tracker API
§  Log process => flume
§  Hadoop warehouse
§  Cube
§  Klout UI (tableau for visualizations)
o   Partition by hour in event tracker, elsewhere by hour
o   Serializing and de-serializing data from json into other format
o   Hive - map/reduce generator
o   Forget about using noSQL database for scan, klout use klout_user_id to find related activity (very punctual search)
o   Hive ODBC driver
o   Best practices and lessons learned
§  Avoid using a traditional DBMS for staging
§  Use SQL server OpenQuery interface for heterogeneous joins
§  Leverage hive UDF to transform complex data types, such as JSON, into rows and columns that T-SQL com understand
§  Manage large dimensions by using Hive view
o   Para quem não conhece o Denny Lee, merece muito conhecer o trabalho dele (http://dennyglee.com/)
·         A sessão DBA-400-HD: Recovering Lost Data do Robert foi cancelada, então tive que escolher outras sessões.
o   Uma pena as duas sessões não acontecerem, estava querendo ver ideias para melhorar nosso treinamentos de Disaster Recovery na Nimbus. Fica para um outra oportunidade.
·         CLD-300-M: SQLCAT: SQL Azure Design Patterns and Best Practices
o   Foi bom ver nessa sessão o que nós na Nimbus estamos corretos a afirmar que nuvem não é scale up, mas sim scale out. Temos ido com essa abordagem em nossos clientes e o resultado muito bom.
o   O lado ruim dessa brincadeira é que é necessário cuidar das questões de escalabilidade horizontal na sua arquitetura e aplicação, talvez não em um futuro próximo onde isso será mais transparente, mas hoje é sua responsabilidade fazer a quebra e a (difícil) consulta horizontal.
o   Seguindo a linha da última sessão, alguns comentários sem me preocupar se você vai atender ou não. São eles...
o   Scale out architecture
o   Azure compute (and other cloud resources) are usually small, even compared to
o   SQL DB partition: high state, manual partition (app), partition function
o   Horizontal partition
o   Hybrid partitioning, SQL, Table storage, Blob storage
o   Partitioning
§  Partition key
§  Partition value
§  Partition value to logical partition
§  Logical to physical partition
§  Non cryptographic hash to have collision, not infinite value
o   New option in today scenario = database as a container
o   Wrong partition in your architecture = no scale and hot spots
o   Performance SLA of SQL Databases? This is multi-tenant!
§  Not guaranteed today, future will able to reserve at a higher price
§  Maybe resource not online, you get to it in a 30s time frame
§  Add policy (retry quicky, backoff, fail, etc.)
o   Paper: Computing on large-scale distributed systems
o   Query fanout (scatter/gather)
·         DBA-323-A: SQLCAT: SQL Server 2012 AlwaysOn HA/DR Customer Panel
o   Por fim eu fiquei em uma panel session, onde cinco arquitetos (ou título semelhante) de grandes empresas que implementaram o AlwaysOn foram falar rapidamente sobre a arquitetura e alguns cuidados na implementação.
o   Interessante ver o tamanho de algumas implantações e a quantidade de redundância, FCI + AG + replicação + hardware replication, live migration, muita coisa bacana. Na sua maioria 0% data loss e 99,999% uptime.
o   Foram muitos detalhes e ficou difícil anotar tudo, então depois vou baixar o PPT para revisar cada um dos cenários, mas para quem trabalha em ambientes críticos foi interessante ver como o pessoal pensa em HA/DR.

A noite tivemos a famosa community appreciation party que foi no Experience Music Project (EMP) museum (ainda bem, não queria ir de novo no gameworks). Eu nunca tinha ido lá e foi bem legal, além do live band karaokê que rolou, o museu tem outras partes para visitarmos.  A de sci-fi onde vimos muitos ícones do cinema, como armas de heróis, cadeira do capitão Kirk, roupa usada pelo Neo, Superman, MIB, Alien, etc. Na parte musical vimos guitarras, roupas, fotos e um pouco sobre a história da música, bem legal também.
Para aqueles que estão animados para o PASS Summit 2013, já está aberto a compra de ingressos para o próximo ano (http://www.sqlpass.org/summit/2013/), e pagando até dia 04/01/2013 o evento sai por $ 995 (tem um promocode para isso). A data para o evento: 15 a 18 de Outubro, Charlotte. Então é hora de marcar suas férias do próximo ano ou conversar com seu chefe e economizar para pagar o cartão em Fevereiro!
Gastos do dia:
·         Refeições (valores aproximados)
o   Almoço: fornecido pelo evento.           
o   Jantar: fornecido pelo evento no community appreciation party
Abraços,
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br