Livro – SQL Server: Além do Conceito II

SQL Saturday #488 – Joinville
Pessoal, boa noite.
No último sábado tive a honra de participar do SQL Saturday realizado em Joinville. O evento foi demais, muitas pessoas participando, palestras excelentes, uma organização tremenda e um final com muitos brindes.
Queria agradecer as quase cem pessoas que puderam assisitir a minha sessão, pois, foi bem produtivo com as dúvidas.
Estou disponibilizando o material que foi utilizado no site do evento:
http://www.sqlsaturday.com/488/Sessions/Schedule.aspx
Me coloco a disposição em caso de alguma dúvida.
Ta-Ta for now
Codificando Night Week 2016 – EU Estarei Lá
Fala pessoal, tudo bem ?
Entre os dias 22/02 a 26/02 acontecerá o evento anual Codificando Night Week desse ano. Esse evento é organizado pelos MVPs e Líderes da comunidade e nessa edição teremos 20 palestras durante 5 noites. As palestras serão on line e GRATUITAS, então não fique de fora.
Fiquei muito feliz quando recebi um e-mail dizendo que minha palestra foi aceito para esse evento. Essa é a primeira vez que irei palestrar e gostaria de convidá-los para participar. Se você é um DEV que gostaria de saber um pouco mais sobre SQL Server para apoiar o DBA da sua empresa ou se você é o DBA que gostaria de entender as dificuldades e desafio da sua equipe de desenvolvimento do dia-a-dia, então venha participar da minha sessão que se chama: SQL para Desenvolvedores no dia 22/02 as 22:00.
Link do evento – Inscreva-se e participe
http://codificandoweek.azurewebsites.net/
Fico no seu aguardo e até lá!!!!
SQL Saturday 488 – Joinville
Boa noite pessoal, tudo bom?? Espero que sim.
É com muito orgulho em dizer que minha palestra foi aprovada para o SQL Saturday de Joinville. O SQL Saturday é um evento aonde é reunido diversos profissionais de SQL Server do Brazil. Eles estarão contando suas experiências do dia-a-dia em campo e compartilhando conhecimento de grande valia. Venha participar, conhecer pessoas, tirar dúvidas e saber das novidades que lhe esperam e sem nenhum custo.
O evento acontecerá no dia 09 de Abril de 2016, maiores informações veja no site do evento:
http://www.sqlsaturday.com/488/EventHome.aspx
Ainda não sabe o que vai ver? Monte sua agenda com antecedência e vá “degustar” tudo que o evento tem de bom para oferecer.
http://www.sqlsaturday.com/488/Sessions/Schedule.aspx
Mais uma vez muito obrigado e nos vemos lá as 10:30 para falar mais sobre Performance e Tuning.
Novidades do SQL Server 2016
Galera, boa noite.
E começa o ano de 2016 com muitas novidades sobre o SQL Server. Como a tecnologia não para nunca e nós sempre estamos tentando levar um conteúdo atualizado para comunidade, comecei com um webcast sobre o SQL Server 2016.
A organização do webcast e divulgação foi feito pelo Vitor Fava do SQL Maniacs. No webcast falei de algumas novas features do SQL Server 2016 que estão disponíveis na versão CTP e onde algumas delas podem ser utilizadas no dia-a-dia.
Fique a vontade para ver o conteúdo no blog do Fava no link abaixo:
https://vfava.wordpress.com/2016/02/04/gravacao-do-webcast-novidades-do-sql-server-2016/
Ou direto no youtube:
Muito Obrigado e “Ta-Ta for Now”
Conhecendo um pouco de performance
Fala Galera, boa noite.
Tudo bem? Faz tempo neh!? Hoje não colocarei o desafio de T-SQL (não ainda..rs). Hoje vim pra divulgar um assunto que também estava ficando um pouco desatualizado ,mas, como algumas pessoas não conseguiram comparecer e algumas não ficaram sabendo, estou divulgando aqui no blog.
No dia 03/12 tivemos a última reunião, do ano de 2015, do SQLManiacs organizada pelo Vitor Fava, onde eu falei um pouco de performance e tuning (novidade..) utilizando alguns cenários práticos do dia-a-dia.
Para quem tiver interesse em reproduzir todos os cenários descritos na reunião, basta fazer o download dos scripts através do link abaixo:
Reunião do SQLManiacs – Conhecendo um pouco de performance
Ou ir até o blog do Fava, pois, lá possui mais algumas informações, fotos e etc.
https://vfava.wordpress.com/2015/12/08/reuniao-do-sqlmaniacs-conhecendo-um-pouco-de-performance-3/
Muito Obrigado e até a próxima
Desafio T-SQL
Ola pessoal, tudo bem?
Essa semana presenciei um caso aonde era necessário ajudar a desenvolver uma instrução T-SQL que fugia um pouco do nosso dia-a-dia, devido a isso resolvir postar no blog um desafio para compartilhar com todos a solução depois. Espero que muitas pessoas participem.
Vamos ao cenário.
Imagine que o Sistema X realiza o “track” de contratos de uma instituição financeira que são gerados pelo sistema Y, no entanto,o sistema Y gera mais de UMA LINHA para cada contrato toda vez que esse contrato é renegociado. Isso significa que, cada conjunto de contrato no sistema Y terá mais de uma linha baseando-se no número de contrato mais codigo de movimentação do mesmo (Contrato + Mov). Vejam um sample dos dados, conforme a seguir:
O sistema X precisa transformar o resulte set da imagem anterior em um único registro levando as seguintes regras em consideração:
- O status 0 significa – Precisa ser avaliado. O Status 1 significa: Registro Válido e o Status 2 significa que o registro pode ser descartado.
-
Se o os valores em Dt1 e Dt2 for NULOS para para um conjunto de registro (Contrato + Processo) utilizo o registro com a MENOR DtReal.
-
Obs: O print não atende essa condição, mas, consideraria asegunda linha da minha tabela:
-
- Se algum dos valores em Dt1 e Dt2 não for NULO para um conjunto de registro (Contrato + Processo) utilizo o registro com a MAIOR DtReal como base.
-
Quando a regra de número 3 for atendida é necessário “montar” o registro com a seguinte “sub-regra”:
- Se o MAX VALUE da coluna Dt1 do conjunto de registro (Contrato + Processo) for maior ou igual a minha DtReal da linha atual, considero o MAX (no caso o valor 25/08/2013) para essa coluna. (Nesse caso minha coluna DtReal seria 22/08/2013 + Dt1 = 25/08/2013). No entanto, temos outra “regrinha” que no caso a regra “4.b”.
-
Se o MAX VALUE da coluna Dt1 do conjunto de registro (Contrato + Processo) for maior ou igual ao MAX VALUE da DtReal do conjunto de registro (Contrato + Processo) o valor da coluna DtReal DEVE ser a menor data.O registro deve ser como a seguir:
-
Se o MAX VALUE da coluna Dt1 do conjunto de registro (Contrato + Processo) NÃO for maior que a minha linha BASE (no caso a DtReal=22/08/2013, seguindo a regra de número 3) , conforme print:
Nesse caso minha linha deve ser montada da seguinte maneira:
-
Minha última regra consiste no seguinte: Se o MAX VALUE da coluna Dt1 do conjunto de registro (Contrato + Processo) NÃO for maior que a minha linha BASE (no caso a DtReal=22/08/2013, seguindo a regra de número 3) E o valor da Coluna Dt1 da linha BASE (no caso a linha que possi o valor DtReal = 22/08/2013) NÃO for NULA, minha linha consiste na DtReal + Dt1 daquela linha. Veja o cenário:
Para a regra de número 6 o meu registro deve ser algo mais o menos assim:
Observações:
- Os registros que devem aparecer na solução no final devem ter o valor da coluna Status modificado para 1
- A solução pode ser escrita nas seguintes versões do SQL Server: 2008,200R2, 2012 e 2014.
- A solução pode ser feita em mais de uma consulta para atender as regras.
- Não é permitido a ulização de abordagens linha-a-linha (While e CUSRSOR)
Estou disponibilizando o script que monta os cenários com todos os registros. A ideeia inicial é desenvolver um pouco a lógica e fazer exercícios de T-SQL. No futuro podemos utilizar o mesmo cenário e avaliar o desempenho das sugestões que serão enviadas e discutir todas elas.
use tempdb
go
–Create sample datas
CREATE
TABLE #T
(Contrato VARCHAR(50), Mov INT, DtReal date, Dt1 date, Dt2 date,[Status] tinyint)
–DROP TABLE #T
INSERT
INTO #T(Contrato, Mov,DtReal,Dt1,Dt2, [Status])
VALUES
(’00XXXXX.25.0000′, 80193, ‘20130701’,
NULL ,NULL,0)
,(’00XXXXX.25.0000′, 80193, ‘20130617’,
NULL ,NULL,0)
,(’00XXXXX.25.0000′, 80193, ‘20130821’, ‘20130825’ ,NULL,0)
,(’00XXXXX.25.0000′, 80193, ‘20130822’,
NULL ,NULL,0)
,(’00YYYYY.26.0000′, 80192, ‘20130701’, ‘20130820’ ,NULL,0)
,(’00YYYYY.26.0000′, 80192, ‘20130617’,
NULL ,NULL,0)
,(’00YYYYY.26.0000′, 80192, ‘20130821’,
NULL ,NULL,0)
,(’00YYYYY.26.0000′, 80192, ‘20130822’,
NULL ,NULL,0)
,(’00ZZZZZ.27.0000′, 80194, ‘20130701’,
NULL ,NULL,0)
,(’00ZZZZZ.27.0000′, 80194, ‘20130617’, ‘20130825’ ,NULL,0)
,(’00ZZZZZ.27.0000′, 80194, ‘20130821’,
NULL ,NULL,0)
,(’00ZZZZZ.27.0000′, 80194, ‘20130822’, ‘20130821’ ,NULL,0)
,(’00WWWWW.28.0000′, 80195, ‘20130701’,
NULL ,NULL,0)
,(’00WWWWW.28.0000′, 80195, ‘20130617’, ‘20130820’ ,NULL,0)
,(’00WWWWW.28.0000′, 80195, ‘20130821’,
NULL ,NULL,0)
,(’00WWWWW.28.0000′, 80195, ‘20130822’, ‘20130821’ ,NULL,0)
,(’00KKKKK.29.0000′, 80196, ‘20130701’,
NULL ,NULL,0)
,(’00KKKKK.29.0000′, 80196, ‘20130617’,
NULL ,NULL,0)
,(’00KKKKK.29.0000′, 80196, ‘20130821’,
NULL ,NULL,0)
,(’00KKKKK.29.0000′, 80196, ‘20130822’,
NULL ,NULL,0)
,(’00AAAAA.30.0000′, 80196, ‘20130701’,
NULL ,NULL,0)
,(’00AAAAA.30.0000′, 80196, ‘20130602’,
NULL ,NULL,0)
,(’00AAAAA.30.0000′, 80196, ‘20130821’,
NULL ,NULL,0)
,(’00AAAAA.30.0000′, 80196, ‘20130822’,
NULL ,NULL,0)
,(’00BBBBB.19.0000′, 80196, ‘20130701’,
NULL ,NULL,0)
,(’00BBBBB.19.0000′, 80196, ‘20130502’,
NULL ,NULL,0)
,(’00BBBBB.19.0000′, 80196, ‘20130821’,
NULL ,NULL,0)
,(’00BBBBB.19.0000′, 80196, ‘20130822’,
NULL ,NULL,0)
Aguardo o script com a solução por e-mail. Fiquem a vontade para discutirmos. O Resultado da consulta deve ser o da imagem abaixo:
Thiago Carlos [TC] de Alencar
Arquivos SQL Sat SP #424 – PPTs e Demos
Pessoal, bom dia.
Acabei de fazer o upload dos arquivos (ppts + demos) da sessão que EU e a Liliam Leme fizemos no SQL Saturday #424 sobre o novo cálculo de estatísticas com o novo CE no SQL Server 2014. Por favor, baixem e reproduzam as demos em casa como “Home Work”…rs. Segue
Site do Evento
http://www.sqlsaturday.com/424/Sessions/Schedule.aspx
One Drive
http://1drv.ms/1LWZYOc
Até a próxima!!!!
SQL Saturday 361 – Joinville – Slides + Demo
Pessoal, bom dia.
Postando um pouco atrasado o material (Slides + Demo) que foi utilizado na minha sessão junto com o Lucas Carrera falando sobre Concorrência Pessimista e Concorrência Otimista dentro do SQL Server. Espero que gostem e realizem a demonstração em casa para fixar o conteúdo. Qualquer dúvida, não deixem de nos contactar.
https://onedrive.live.com/?cid=8F512CC8D244EFF1&id=8F512CC8D244EFF1%21136
Já adianto o convite para o SQL Saturday de São Paulo em Setembro!!! NOS VEMOS LÁ.
Implementing Microsoft Azure Infrastructure Solutions – Rumo a NUVEM !!!
Olá pessoal, quanto tempo neh!? Pois é, bastante correria. Desta vez eu vim para falar um assunto não muito técnico, mas, que com certeza vai vingar muito em breve no meu ponto de vista. Este post vai falar sobre minha experiência referente ao exame 70-533 da Microsoft que realizei na última quinta-feira (19/02/2015) e foi concluído com sucesso e uma visão que EU tenho do que está por vir com o Azure. Posso estar errado? Com certeza!!! Mas o que vale é compartilhar…rs.
Nos primeiros momentos estudando para a prova, veio na minha cabeça uma coisa que sempre conversei com o meu amigo Marcelo Fernandes e que acho que foi bastante cobrado dos DBAs quando existia o extinto título MCDBA. Pra quem não sabe, para possuir esse exame era necessário possuir DUAS provas de SQL Server 2000 e UMA de Windows Server 2003, já que o SQL Server deve ser instalado em cima de um SO é necessário que conheça um pouco dele. No meu ponto de vista existem diversos tipos de DBAs e com perfis diferentes que cada um se encaixa perfeitamente no seu dia-a-dia de trabalho, no entanto, o DBA deve conhecer um pouco de Rede, Infra, SO, Storage, Desenvolvimento, Servidores de Aplicação e algo que pode influenciar o seu SGBD indiretamente. Pois, como diz o Luti DBA significa “Default Blame Accept”. Faz sentido não é!?
No meu ponto de vista, no Microsoft Azure vejo que não existirá os rótulos: o “cara” do SO, o “cara” do SQL, o “cara” da Rede e o “cara” disso e daquilo, mas, sim o Arquiteto de Soluções pra Cloud, pois, esse é o que se espera da pessoa que se especializará nesse segmento. Por outro lado isso não isenta de se especializar, mas, torna as coisas muito mais interessantes e competitivas. Acredita que essa é a palavra que melhor define o Microsoft Azure, Competitivo.
Em uma época onde as empresas são bastante dinâmicas e precisam sempre estar à frente dos seus concorrentes e de forma que necessitem reduzir custo, o Microsoft Azure traz tudo isso de forma simples e objetiva tornando as empresas mais competitivas. Não é isso que a sua área de negócio e o seu negócio espera de você!? Por que gastar uma fortuna em Infra Estrutura, Armazenamento, Comunicação, Licenças, Renovações, Equipes “infladas”, plantões infinitos e etc. Embora, isso não significa que não precisamos de pessoas, elas ainda são e serão muito importantes nas organizações, mas, agora com o foco mais direcionado que é “Business”.
Imagine o seguinte cenário: Você precisa criar um site que venderá ingressos para o show dos Beatles. Estima-se que o local do show abrigará mais que duzentas mil pessoas. O site pode ser acessado 24X7 e apenas ficará disponível por 2 dias para quem quiser comprar. Seria um grande desafio conseguir o data center, comprar licenças, prever alta disponibilidade, monitoramento, equipe e etc. Com o Microsoft Azure essa situação muda um pouco! Se quiser saber mais, deixo no final do artigo referências sobre o assunto.
Quanto o exame 70-533 volta um pouco a ser exigido o que era exigido no exame MCDBA, não com tantos detalhes técnicos, mas, requer que o candidato tenha conceitos de Storage, Rede, Infra e etc. E com certeza uma das coisas mais importante como ter tudo isso reduzindo custo.
Vamos a lista do que é cobrado no exame:
- Implement Web Sites
- Implement Virtual Machines
- Implement Cloud Services
- Implement Storage
- Implement Azure Active Directory
- Implement Virtual Networks
No modulo de Web sites é importante entender como fazer a implantação de um web site, configurá-lo e monitorar. Também entender quais são as opções para restringir o acesso e forma de deixa-lo seguro com protocolos como SSL e certificados.
Em implementando máquinas virtuais são basta apenas saber o que é uma máquina virtual, mas, como utilizar de forma inteligente e o que se pode fazer com máquinas virtuais na nuvem. Uma das coisas mais fantásticas e a opção de você criar um “template” e fazer o upload da imagem para a sua galeria. Claro que outras coisas como configurar, monitorar, como separar por “subnets” e como criar maquinas para você ter disponibilidade em caso de desastres ou qualquer aplicação de patch.
Em Implementando o Cloud Services requer a exigência de entender como se pode implementar aplicações rodando na nuvem, como fazer o “scale up/down”, configurar, monitorar. Entender o que é um “Web Role” e “Worker Role”,saber como tirar proveitos desses recursos e como dimensiona-los da melhor forma reduzindo custos.
Em implementando Storage que na minha opinião é um dos assuntos com o aspecto mais importantes no Azure. Pois, lhe traz opções de como armazenar aquivos, pastas, fazer backups, sql database, blob storage, site recovery e etc. Sabendo configurações, opções de planos e alguns outros pontos chaves tenho certeza que sua vida será mais tranquila quando migrar pra nuvem.
Está o requisito que pessoas apenas acostumada com seu “quadrado” pode ter dificuldade. Para a pessoa que vem de SQL ou de qualquer tecnologia especifica pouco se preocupa de como é feito/ou deveria ser o acesso as aplicações, recursos, objetos e integrações seja ela no on-premises ou no Microsoft Azure. Esse quesito é bastante exigido, pois, no exame existem diversos cenários aonde se fala em integrar ambiente on-premises com Azure.
Finalmente implementando redes virtuais, se você é aquela pessoa que não possui bastante afinidade com redes de computadores, bem-vindo ao time. Nsse item é requerido que o candidato possua conhecimento de redes, protocolos, comunicação, subnets, vpn e algumas “coisitas” mais. Entender fases, passo-a-passo e componentes para entender como criar redes: Point-to-site, site-to-site, multi-site e fazer com que as redes hoje locais possam estender para a nuvem é um dos aspectos chaves desse módulo.
Caminho que segui para os estudos:
Utilizei o livro: Exam Ref 70-533 Implementing Microsoft Azure Infrastructure Solutions, MSDN e TechNet e alguns links abaixo:
http://azure.microsoft.com/pt-br/
http://azure.microsoft.com/pt-br/pricing/
http://azure.microsoft.com/pt-br/overview/what-is-azure/
Também o que foi bastante importante para a consolidação do aprendizado foi criar uma conta no Microsoft Azure, que é disponibilizada free no portal.
http://azure.microsoft.com/pt-br/pricing/free-trial/
Espero que tenham gostado!!!
Até a próxima