quinta-feira, 31 de março de 2016

SQL Server Developer Edition - for free

 Excelente notícia! SQL Server Developer Edition agora é grátis. Veja o anúncio da Microsoft na íntegra: https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/31/microsoft-sql-server-developer-edition-is-now-free/

Ele vem junto com um conjunto de ferramentas disponíveis no Visual Studio Dev Essentials (http://www.visualstudio.com/products/visual-studio-dev-essentials-vs). Que tem até um crédito para brincar com o Azure (nada demais, mas é algo legal para quem nunca brincou com o Azure!).

Além disso tem muita novidade rolando no Build 2016. Se quiser acompanhar o que anda acontecendo por lá, não deixe de dar uma olhada no Channel9: https://channel9.msdn.com/Events/Build/2016.

É meu amigo, cada dia que passa temos menos desculpas para não nos reinventarmos...

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quarta-feira, 16 de março de 2016

TODOS os treinamentos da Nimbus com preço promocional

Durante o fim de semana, talvez incentivado por um espírito de mudança, resolvi fazer algo diferente na Nimbus. Conversei com os outros instrutores, que se mostraram abertos à seguinte ideia…

Todos os treinamentos da Nimbus que já estão anunciados, serão comercializados por R$ 1.500,00 (originalmente os valores estavam entre R$ 2.250,00 e R$ 2.750,00) - http://www.srnimbus.com.br/calendario/turmas/turmas-sql/

Alguns aspectos que nos motivaram a fazer isso:

    • Recorrentemente estou vendo um número grande de pessoas em fóruns, postando frases como "em busca de recolocação no mercado", "procurando trabalho", etc.
        ○ Este é um público que, com a escassez de vagas atualmente, pode se beneficiar de um valor diferenciado.
    • O país está em crise e em geral as famílias estão apertando o orçamento, o que faz com que muitos deixem de se capacitar (o que é um erro, às vezes necessário!) ou aceitem qualquer centro de treinamento, que com frequência acaba contratando instrutores inexperientes e disseminando um conteúdo básico, só para conseguir "fechar a conta".
        ○ Com isso o retorno do SEU investimento é baixo, porém com o conteúdo já entregue muitas vezes você acaba por aceitar o mediano ou medíocre.
    • Sempre foi meu objetivo criar os mais avançados e melhores treinamentos de SQL Server do país, algo que sinceramente acredito que conseguimos, com o apoio de profissionais diferenciados.
        ○ Porém queremos atingir (ou "iluminar") o maior número de pessoas possível, o que nem sempre é viável, seja por agenda, por estar em outra cidade, pela situação financeira, etc.
    • Por último e não menos importante, por conta da agenda dos instrutores, que anda bastante tumultuada por conta de outras atividades, e por outros fatores pessoais (no meu caso), neste momento não existe previsão para anunciarmos mais treinamentos no ano de 2016!

Levando todos esses fatores em conta, achamos por bem colocar no ar este grande incentivo! Como instrutores, o que queremos é uma sala com muita gente interessada, nos metralhando de perguntas, e saindo do curso pensando: "Nossa, eu achei que conhecia o SQL Server…".

Com nossa orientação os profissionais que trabalham com o SQL Server poderão sair do básico e avançar mais rapidamente na jornada para se tornar um DBA sênior ou consultor.

Espero que esse seja o empurrão que faltava para você participar em um de nossos treinamentos. Se não for neste ano,  quem sabe em 2017 ou em outro ano, quando abrirmos mais turmas…

Um forte abraço,

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

terça-feira, 15 de março de 2016

Referência: Brendan Gregg on Systems Performance

Olá leitor.
Recentemente eu ouvi um podcast bem interessante, que vale a pena ser escutado por muitos:  http://www.se-radio.net/2015/04/se-radio-episode-225-brendan-gregg-on-systems-performance/

Foi gravado no Software Engineering Radio e conta com a participação de Brendan Gregg (http://www.brendangregg.com/), um profissional diferenciado que acompanho já faz mais ou menos um ano, e que hoje tem um trabalho bem divertido: "Senior performance architect at Netflix" (não que os outros empregos dele tenham sido ruins…)

Nesse podcast ele fala sobre Systems Performance, fazendo uma análise de desempenho do ponto de vista do sistema operacional/hardware e como isso afeta as aplicações. Para quem gosta de uma análise de baixo nível, ouvi-lo falar é um excelente incentivo para continuar estudando. De quebra ele ainda fala do poder da visualização, cita o Edward Tufte e ainda fala das diferenças em desempenhar este tipo de trabalho em ambiente virtual (leia-se cloud computing).

Ele ainda publicou em 2013 um livro que está na minha lista de leitura e tenho certeza que deve agradar muitos de vocês: Systems Performance -  Enterprise and the Cloud (http://www.amazon.com/gp/product/0133390098)

É só isso… Não sei se você gosta desse tipo de post, mas como sempre é bom ter boas referências, quem sabe esta não é mais uma. E em seu site pessoal tem muito material legal, vale a pena revisar.

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quarta-feira, 9 de março de 2016

[SQLServerDF] Encontro XXX - Analyzing I/O Subsystem Performance


No trigésimo encontro do grupo SQLServerDF, teremos uma reunião diferente. Será uma apresentação online e com um palestrante internacional bem conhecido: Glenn Berry, principal consultant da empresa SQLSkills.

Glenn é conhecido por seu imenso conhecimento em hardware e SQL Server, publicando constantemente as famosas DMV Diagnostics Queries.

Data e horário: 15/03/2016, das 18:30h às 20:00h
Local: Online
Link para apresentação:  https://sqlskills.webex.com/sqlskills/j.php?MTID=mb6c19bb8f45135b4efe53231c954d262
Palestrante: Glenn Berry

Título:  Analyzing I/O Subsystem Performance
Descrição: SQL Server is often I/O bound - but why? Do you feel lost when talking to your storage administrator?  Are your storage subsystems like a mysterious black box where your databases live but you can’t go visit? This session will get you up to speed with the fundamentals of storage subsystems for SQL Server. You will learn about the different types of storage that are available, and how to decide what type of storage to use for different workload types. You will also learn useful tips and techniques for configuring your storage for the best performance and reliability. We’ll cover methods to effectively measure and monitor your storage performance so that you will have valuable information and evidence available the next time you have to discuss IO performance with your storage administrator. Come to this session to learn how to analyze I/Os as well as options to reduce the bottlenecks.

Mini-cv do palestrante: Glenn is a Microsoft SQL Server MVP. He has worked as a SQL Server professional for many years in a variety of roles, including stints with NewsGator and Avalara. His expertise includes DMVs, high availability, hardware selection and configuration, and performance tuning. He is also an Adjunct Faculty member at University College – University of Denver, where has been teaching since 2000. Glenn is heavily involved in the SQL Server community, and is a frequent speaker at user groups, SQL Saturdays, SQLintersection, and the PASS Community Summit. He is the author of the book SQL Server Hardware, and he wrote chapters for SQL Server MVP Deep Dives and SQL Server MVP Deep Dives Volume 2 books.

Email: Glenn@SQLskills.com  
Website: http://www.SQLskills.com 
Full Bio: http://www.sqlskills.com/about/glenn-berry/ 
Blog: http://www.SQLskills.com/blogs/Glenn 
Twitter: http://twitter.com/GlennAlanBerry 


No último encontro eu mencionei que talvez eu iria usar o auditório da XTC para transmitir a apresentação. O problema desta abordagem fica por conta do áudio, que neste momento não existe na infraestrutura existente, e meus testes com as caixas de som mostraram uma qualidade não ideal. Portanto no dia do encontro cada um vai para sua casa e acompanha o Glenn falando.

Claro que eu estarei online e vou encaminhar as dúvidas para o Glenn, então pode levar suas dúvidas anotadas, me enviar com antecedência, como preferir, mas não deixe de participar e prestigiar mais uma atividade do grupo SQLServerDF!

======================== UPDATE ================================

Link para fazer download do material da sessão: https://onedrive.live.com/redir?resid=E145F7753042D628%216077 (SQLServerDFXXX_AnalyzingIOSubsystemPerformance_GlennBerry.zip)

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

terça-feira, 8 de março de 2016

SQL Server on Linux


A essa altura do campeonato você já deve estar sabendo do anúncio que a Microsoft fez no dia 07/03/2016 (ontem): https://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux/

Sim, SQL Server rodando em Linux.

Um assunto que pegou até MVPs de Data Plataform desprevenidos, pois muitos não tinham ideia de que isso poderia acontecer. E mesmo com inúmera incógnitas, não posso deixar passar em branco o assunto sem um post.

Eu estou ANIMADO com o anúncio e vou expor meus motivos, porém primeiro vou listar o que nós não sabemos (nem mesmo os MVPs de SQL Server):

  • Quais serão as funcionalidades suportas pelo produto. Será todo o core da engine relacional? Integration Services?
    • Hekaton, Columnstore, e outras funcionalidades que estão brilhando, estarão incluídas?
  • Teremos Enterprise, Standard e todas as outras edições?
  • Os releases serão sincronizados ou podemos esperar uma defasagem de funcionalidade entre SQL Server do Windows e Linux?
  • Como será o SQL Server Agent? Controlaremos nossos jobs pela cron?
  • Quais serão as distribuições de Linux suportadas? Suse?
  • Suportaremos quais file systems? Ext3, ext4, reiserFS, XFS?
  • Quais serão as ferramentas? Vamos ter o SSMS on Linux? Visual Code será suficiente? Vamos usar IDEs como Eclipse?
  • Haverá interoperabilidade entre plataformas? Isto é, um backup de um banco no Linux pode ser restaurado em um SQL Server rodando no Windows?
  • Teremos 100% de compatibilidade no T-SQL?
  • Como fica integração com o CLR?
  • Diferente do Windows, onde o SQL Server não alterada nada no kernel do SO, será que teremos compilações de kernel específicas para o SQL Server?
  • Vão abrir o código fonte do SQL Server? (Aqui eu aposto contra…)

O que nós sabemos:


Ficou claro que a listagem de dúvidas é muito maior que a de certezas, o que não deixa o assunto menos interessante.

O que é mais legal e me deixa motivado, é que teremos a possibilidade de acompanhar o SQL Server em uma nova jornada, podendo analisar e aprender com os acertos e erros da Microsoft e seus desenvolvedores. Então elucubro sobre alguns pontos…

  1. Fica evidente mesmo para os mais míopes, o que já sabemos: “Data is the core asset now.” Mr. Nadella said.
  2. Linux é um grande sistema operacional e com um market share significativo. Estar presente nele representa uma oportunidade para a Microsoft e, claro, para todos os DBAs SQL Server.
    1. O que não significa que o SQL Server irá se comportar melhor.
  3. As empresas poderão optar por ter um excelente banco de dados (veja prosa abaixo) mesmo que esteja com seus servidores rodando Linux.
    1. O poder de escolha é importante para o negócio, e caso a Microsoft garanta compatibilidade do T-SQL e boa integração entre plataformas, a migração Windows -> Linux pode ser facilitada.
  4. Será possível fazer comparações efetivas de desempenho entre o SQL Server e outras engines rodando com mesmo sistema operacional e hardware.
    1. Só isso já vale o ingresso, a comparação efetiva de engines ou funcionalidades específicas, sem ficar com discursinho de que se fosse no Linux o resultado seria outro.
  5. Muitos DBAs SQL Server vão ter que aprender Linux e isso fará com que eles estudem e comparem as plataformas. Saber as diferenças e como explorar os pontos fortes de cada sistema operacional vai te deixar um melhor profissional.
    1. O que não significa que será melhor ou mais fácil… Por exemplo: deixe de agendar seus jobs com o SQL Server Agent e passe a usar a cron. Ou melhor, tente criar no Linux um monitor de desempenho como faz no Perfmon, cruzando dados de sistema operacional (memória, processos, processadores, I/O, rede), com contadores do SQL Server (access methods, buffer manager, SQL Statistics).
  6. Poderemos observar a qualidade do código produzido pela Microsoft para suportar diferentes sistemas operacionais. Será que ela fará melhor ou vou encontrar listas gigantescas de correções como eu vejo no DB2 LUW?

Prosa SQL Server, Oracle, DB2, PostgreSQL, …

Relembrando: Essa prosa vem de um geek que estudou por muito tempo o SQL Server, administrou por quase 2 anos e meio o DB2 LUW com Suse Linux, foi massacrado com informações sobre o Oracle no treinamento do Portilho e agora eventualmente investe uns minutinhos lendo coisas a sobre o PostgreSQL. Isto é, com certeza escrevo muita besteira…

Hoje temos o DB2 e Oracle com mais funcionalidades que o SQL Server, algumas sensacionais que eu gostaria de ver no SQL Server, além da possibilidade de fazer ajustes finos em diversas configurações (mesmo que quase ninguém o faça). Já no SQL Server eu vejo uma engine mais concisa e muito eficiente, e um produto que está se adaptando mais rápido às inovações/pesquisas de banco de dados (talvez por não ter que manter diferentes SOs), o que pode ser um diferencial nos próximos anos.

Vejo na nova direção da Microsoft, abraçando o Linux e open source, a possibilidade de muitos de nós sair de um casulo dentro de uma plataforma (como eu vivi por muitos anos!!) e até de abraçarmos modelos diferentes. Quem sabe no futuro veremos menos gastos com uma cadeia gigantesca de vendedores, minimizando o custo do licenciamento, melhorando o serviço de suporte e focando no que realmente importa: a qualidade dos produtos e resolver os problemas dos clientes. Seria muito bom ter que parar de desmentir histórias que alguns vendedores contam…

Já disse isso para vários clientes (inclusive um bem recente) que para a grande maioria dos ambientes transacionais, não importa se o seu banco é Oracle, SQL Server, DB2 ou PostgreSQL (que tem recebido muitos elogios e acho que merece ser acompanhado de perto), o que importa muito mais é como fazemos a adoção da tecnologia e se estamos utilizando-a de forma efetiva.

Por fim, espero sinceramente que o maior benefício seja produzirmos comparações de qualidade, discussões inteligentes e que isso traga maior maturidade para TODOS os profissionais que trabalham com banco de dados. A aproximação da Microsoft com o Linux deve fazer com que DBAs SQL Server se aproximem de outras engines e também trazer DBAs Oracle/DB2/PostgreSQL para explorar um pouco do SQL Server, quebrando mitos e preconceitos.

Quero poder discutir e testar se o completely fair scheduler (https://en.wikipedia.org/wiki/Completely_Fair_Scheduler) é realmente ruim para máquinas com banco de dados que não adotam um modelo cooperativo de escalonamento (como eu acredito ser). Quero poder falar sobre configurações do SO (ex.: swapiness, huge pages), ou se a implementação do Vectored I/O (https://en.wikipedia.org/wiki/Vectored_I/O) no Linux realmente não é a ideal (como eu já soube), tudo isso sem esbarrar na barreira de minha versus sua plataforma de banco de dados ou sistema operacional.  

Mas tem uma coisa que continuará igual: os manés xiitas sempre existirão.

Isso não mudará, infelizmente teremos manés em todas as plataformas. Vou continuar observando calado um DBA de outro SGBDR dizendo que eu, DBA SQL Server, não sei administrar banco de dados sem mouse, notando em seguida que o infeliz não tem a menor ideia do funcionamento de um banco de dados (pela minha observação, os xiitas tendem a ser os mais leigos). E mesmo sabendo que em dois ou três meses estudando o SGBDR muitos profissionais seriam melhores do que ele, continuarei calado. Para esses xiitas, que por desconhecimento de outra tecnologia, continuam a arrotar besteiras colossais e se sentindo maiorais, meu total desprezo.


Estamos vivendo tempos excitantes no mundo dos bancos de dados e essa mudança dentro da Microsoft e com o SQL Server eu quero assistir de camarote. Pode ser que ninguém adote o "novo" produto, pode ser que o desenvolvimento falhe espetacularmente e venha com muitos bugs ou péssimo desempenho, ou que as ferramentas não sejam tão interessantes como as que temos hoje. Ou pode ser que o SQLOS ofereça uma abstração fantástica e o produto se adapte muito bem em um novo SO, deixando muita gente de queixo caído. Seja qual for o resultado desse movimento, com certeza ele trará muito aprendizado.

De quebra, quem sabe um dia não teremos um treinamento Mastering SQL Server on Linux na Sr. Nimbus, irmão do já conhecido Mastering http://www.srnimbus.com.br/sql23/.

Quer acompanhar de perto também? Se cadastre no preview e acompanhe o evento Data Driven que acontecerá no dia 10 de março, onde provavelmente vão falar sobre o assunto.


Se estiver com tempo e quiser analisar por outras fontes como está sendo recebida a notícia, alguns links:



Ah, Kevin Farlee colocou essa imagem no twitter… Esse não acredito ser fake, como muitos outros que já vi. :-)




====================== UPDATE ======================

Brent Ozar traz para a mesa mais outros questionamentos, que podem ser tão importantes quanto a qualidade do produto desenvolvido. Recomendo a leitura: https://www.brentozar.com/archive/2016/03/microsoft-sql-server-coming-linux

Seria legal também ouvir comentários de profissionais Oracle, DB2, Postgres… E aí, acham que isso vai vingar? Tem curiosidade com o que está por vir ou não vai fazer a menor diferença no mercado?

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quinta-feira, 3 de março de 2016

Database Internals - CMU

Estamos vivendo um período muito legal para bancos de dados, frase que eu já disse umas mil vezes e você já deve estar cansado de ouvir, ok. O resultado disso é que a maneira que nós, profissionais de banco de dados, encaramos a construção de soluções, modelamos, criamos e mantemos os nossos bancos, está passando por uma transformação, que vale a pena acompanhar de perto.

Então pare um pouco e reflita… Você conhece bem os fundamentos e mecanismos internos do seu banco de dados? Não é necessário saber o código fonte ou os mínimos detalhes da engine, longe disso, pergunto se você consegue entender os reais motivos de um problema, como o crash recovery funciona e coloca o banco em um estado consistente, o que é Write Ahead Logging, checkpoint, MVCC, ou como é a estrutura de uma B+tree?

Já faz anos que entrevisto profissionais de banco de dados, seja para lugares onde trabalhei ou a pedido de clientes, e em geral o que me mais me impressiona (negativamente) é a quantidade de DBAs ou desenvolvedores que trabalham com bancos de dados relacionais durante anos e não fazem ideia de conceitos básicos da engine com qual estão trabalhando. São profissionais que sabem utilizar o banco, fazer backup, um restore, rotinas de manutenção e até seguem recomendações de melhores práticas, porém param aí, não procuram entender os porquês e nos problemas mais difíceis, acabam não resolvendo a causa raiz e criando uma série de remendos/paliativos.

Então se você quer aprender mais sobre engines de bancos de dados, tem uma conexão com a internet e está disposto a perder investir algumas horas de sono nas próximas semanas, recomendo acompanhar um curso de banco de dados…

Certa vez esbarrei com o perfil de Andy Pavlo (http://www.cs.cmu.edu/~pavlo/), um acadêmico envolvido com banco de dados e em um de seus tweets cheguei a um curso dele lá na universidade de Carnegie Mellon: Database Systems (http://15721.courses.cs.cmu.edu/spring2016/).

O curso está sendo gravado e publicado aqui: https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx?#folderID=%22ed2ee867-9610-4bad-94af-5d12c2ea47cd%22

O curso tem por objetivo explorar as novidades dos bancos de dados relacionais e o que está mudando no desenvolvimento dos produtos, explicando detalhes de funcionamento das engines relacionais que tanto gostamos. Ainda nem cheguei na metade do curso, mas estou aqui recomendando. Logo no início o Andy menciona que o curso é um Database Internals, então aproveitei o gancho para o título do post.

É um conteúdo diferente do que estamos acostumados, pois o foco é como construir um SGBDR! Só a lista de leitura dos paper que estão na agenda do curso vale a pena: http://15721.courses.cs.cmu.edu/spring2016/schedule.html

E para você que está acompanhando o SQL Server, vai ficar satisfeito em saber que em diversos momentos ele elogia a pesquisa e os avanços do SQL Server, o que deixa claro que mesmo sendo uma engine que entrou mais tarde do mercado de bancos de dados, se comparado ao Oracle e DB2, tem um futuro longo pela frente, e esperamos, brilhante.

Espero que possamos conversar sobre o curso e que ele incentive você a se aprofundar cada vez mais no mundo dos bancos de dados, que é fantástico.

Abraços

Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br