sexta-feira, 26 de junho de 2020

SQL SERVER - Dicas que todo DEV deveria conhecer part-5

Nesta sequencia de tópicos abordaremos algumas dicas, que todo desenvolvedor deveria ter a oportunidade de conhecer. Todo desenvolvedor que programa em T/SQL, precisa estar atento a algumas "tips" do SQL Server que podem facilitar em seu dia-a-dia na empresa.

Dicas part-1 Transaction Log
Dicas part-2 Variáveis ​​table e JOIN's & Criação de tabelas dentro de stored procedures
Dicas part-3 Keywords performance
Dicas part-4 Ad Hoc Queries (Forced Parameteeterization)



Parte 5 - SET DEADLOCK_PRIORITY

Evite deadlock's para transações mais importantes, com a mínima alteração de código.

Hoje vamos aprender hoje como reduzir o impasse em transações importantes, com a mínima alteração de código. O requisito, não importa o que aconteça, não desejamos que essa transação entre em conflito (bloqueio). Outro requisito importante é, que não podemos alterar a regra de negocio, modificações profundas no código do sistema, sem compreender a lógica de negócios.

Nosso primeiro objetivo é, entender o que está criando o deadlock?
Depois de investigar, sempre descobrimos concorrências simultâneas em uma ou mais tabelas especificas.

De fato, a melhor solução é SEMPRE é reescrever o código para que não exista o deadlock,
mas nem sempre é possível como uma solução imediata.

Isso nos leva a apenas uma solução rápida; Definir a prioridade do deadlock.


1
SET DEADLOCK_PRIORITY HIGH;


Esta instrução quando "setada", especifica a real importância da sessão atual.

Se a sessão estiver em conflito com outra transação. Esta declaração SET certifica-se de que
a transação importante deste conteudo, não entrará em deadlock, porem as outras transações ficam em espera com uma maior frequência.

Neste cenário, o hint descrito nesta postagem reduziu o impasse para a transação importante,
mas não reduziu o número total do bloqueios. Portanto, use a técnica somentos nos casos extremamente especiais, quando não é possivel alteração de codigo, conforme detalhamos anteriormente.

Curiosidade:

  • Se ambas as sessões tiverem a mesma prioridade de deadlock, a instância do SQL Server escolhe a sessão que é menos dispendiosa para ser revertida como a vítima de deadlock. Por exemplo, se ambas as sessões tiverem definido sua prioridade de deadlock como HIGH, a instância escolherá como uma vítima a sessão que calcula ser menos dispendiosa para reverter. O custo é determinado comparando o número de bytes de log gravados naquele ponto em cada transação.




Você usa deadlock priority na sua lógica de negócios?
Compartilhe sua experiência nos comentários.

Grande abraços

quarta-feira, 22 de abril de 2020

Curiosidades Microsoft Azure Fundamentals - Como me preparei para os exames ...



Exame AZ-900: Microsoft Azure Fundamentals

Este exame é projetado para candidatos que procuram demonstrar conhecimento de nível fundamental de serviços de nuvem e como esses serviços são fornecidos com Microsoft Azure. O exame destina-se a candidatos sem formação técnica, como os envolvidos na venda ou compra de soluções e serviços com base em nuvem ou que tenham algum conhecimento em soluções e serviços baseados em nuvem, bem como aqueles com formação técnica e que precisam validar seu nível de conhecimento fundamental em serviços em nuvem. A experiência técnica de TI não é exigida, mas requer algum conhecimento ou experiência geral de TI.

Depois que concluímos as novas certificações Azure, recebi algumas mensagens de colegas e amigos do LinkedIn perguntando como me preparei para estes exames.

Então resolvi escrever um artigo contemplando como podemos nos preparar para a certificação.


1 - Crie um plano de estudo definindo os assuntos que precisava estudar, para cada Tema / área com uma meta semanal para ser cumprida.


Habilidades medidas

Faça o download do documento de habilidades.
Compreender os conceitos de nuvem (15-20%)
Compreender os principais serviços do Azure (30-35%)
Entenda segurança, privacidade, conformidade e confiança (25-30%)
Compreender os preços e o suporte do Azure (20-25%)

Baixar a estrutura de tópicos do exame


 2 – Estude o material online disponível no link abaixo:


AZ-900 Estudei todos os módulos desse material.
https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/

AZ-900 Faça o treinamento Microsoft Azure Fundamentals (Gratuito)
https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/



3 - Se possível faça o Microsoft Azure Virtual Training Day: Fundamentals (on-line e gratuito)
Semanalmente antes do COVID-19 eram agendados treinamentos com o fera da Microsoft
Matt Hester (Sr. Azure) que aborda todo o contexto Azure e algumas dicas para prova.


Notas Finais

Por ultimo e não menos importante, pratique seu Inglês, e pratique muito. Sem sobra de duvidas o Nível De Inglês das provas, ainda é o mais complicado das Certificações Microsoft p/ Brasileiros não fluentes, e sempre foi minha maior dificuldade nos exames.

Coloque em prática tudo que você estiver estudando e crie e desmonte o ambiente quantas vezes forem necessários para que você possa realmente entender como a solução em Cloud da Microsoft funciona.

Espero ter ajudado e sucesso para quem está estudando pra estes exames.
Boa sorte.

Universidade de Havard oferece curso de React gratuito - Quarentena OFF-Topic

Harvard, uma das universidades mais importantes e conhecidas do mundo, está oferecendo curso de React gratuitamente.
O React é uma biblioteca JavaScript de código aberto focado na interface do usuário, é utilizado em sites como Facebook, Netflix, Airbnb e vários outros. Muitas empresas vêm desenvolvendo aplicações web interativas com o React JS, devido aos seus recursos úteis e de fácil adaptabilidade.
https://www.edx.org/course/cs50s-mobile-app-development-with-react-native
No relatório anual da Stack Overflow, site de recursos muito utilizado por desenvolvedores, o React aparece como uma das bibliotecas preferidas, sendo considerada a mais amada por 74,5%.
V8OsJA9mAUDjqx6dgYgvUvn64fCmrAOF2wbK0YszfI-97aFTq7flqWu6b6gM_K7WXE144WEqAr064YLB3gf9M9lhrw26q6dmXK_TrU0CNzatcmb9AxNyU5RP5hw9uxLKs45tWd4k
Mapa das respostas do relatório Stack Overflow
kRwth-1GbJxgmVObERH01EznvYipIBYL3lY5Trf91jHJjm-3ZzyB2o_7nctj-8HhS2dExJUqlIi8UkJgD3Qr3HuGEBKN1l1S2DkOGEOEPiJ9jWmqSDRvPH03GVBcx4X57rgOnz_L
Linguagens mais utilizadas – O JavaScript aparece em destaque com 67,8% de adoção. O React contém javascript em sua “fórmula”.
pi0MpyLm9ezFsVyxDC534QP0_Ggmor22g-EvuuUQnIrOsUBXrs_XKcxZ3KFmg1Dso666qyUSvtRXHHotVLCCErOxhyL_33So4AM5yqb9bgroWYaSgZCBXccx_zCLnOymk-EqFDgQ
React.JS é o segundo Web “framework” mais utilizado, com 31,3% das respostas.
Ol0By5F-P5Lvdr4xBCLsMDSRJRUZmNYOLaC2qp9LRJNWl8YzB0HC8RY24FmN1KC67PeRi-PdX6dnpXb3_YG9qrTutA8E_IhoYNhahX9MIbCeFMTK6Tb8RHYAbMvyPEnMAslVqU5L
React Native aparece como a 6ª biblioteca mais utilizada, com 10,5% das respostas.
FFpE09diPJNnIuVF7kTXcmVB3vHOkzUyNM_M66b2eZ4LWfmbWwUmkuY03iU1YUkE5IbUw1ExJL9cHGNMWOVyZ514BqUupwGTLmkRYnqYL4xFPUerlz5z8ejd5PZ1zat7Q17vMEOE
Dentre os desenvolvedores o React.JS é o web framework mais amado. 
Como indicado pelos gráficos acima, o React é muito popular, possui estrutura declarativa e é muito eficiente para construir interfaces para usuários de maneira flexível.

Por que aprender React hoje?

  • React JS tem sido usado extensivamente no Instagram, Netflix, PayPal, Apple, dentre outras plataformas importantes. 
  • Ele pode ser usado para produzir qualquer tipo de aplicações web, aplicativos móveis nativos e interfaces.
  • React é uma das estruturas JavaScript mais populares, consolidando sua posição de liderança com rápido crescimento.
  • É muito mais fácil aprender. 

Harvard

ixpoNl_7CnMa3dzR2bhV2mqL_Bd4C3K63I5owCQ2_1u437lxkmVtJRyWnELj981oEQ7pi4uUIX2wjxBaEFtkSSxyEqiCN61dvJOOrcw4US5T_ZBBH3CTlgKv49INLH2ESdRFigyj
O curso de Harvard sobre React está no site EDX.
Esse curso sobre React é gratuito, caso queira o Certificado, é cobrada uma taxa no valor de $90 Dólares para a emissão.
O curso é de nível intermediário e em inglês, focado no desenvolvimento para aplicações mobile em React Native.

O que vai aprender neste curso :

  • JavaScript
  • ES6
  • React, JSX
  • Components, Props, State, Style
  • Components, Views, User Input
  • Debugging
  • Data
  • Navigation
  • Expo Components
  • Redux
  • Performance
  • Shipping, Testing
Não perca tempo e inscreva-se já na plataforma EDX. O link está logo abaixo:

https://www.edx.org/course/cs50s-mobile-app-development-with-react-native



terça-feira, 24 de março de 2020

Home Office por conta do Coronavírus? TOP 5 Dicas + Ferramentas para otimizar seu trabalho ...

     O home office é novidade para muitos dos que estão experimentando essa modalidade de trabalho durante a epidemia do novo coronavírus. Como forma de proteção dos colaboradores, muitas empresas decidiram continuar suas rotinas suspendendo as tarefas presenciais. No entanto, poucas delas têm prática quando se trata do trabalho remoto. Fato é que, mesmo onde se começava a estudar a modalidade de trabalho remoto poucas vezes por semana, a mudança foi drástica, e a adaptação é inevitável.

Na minha opinião, o Home Office é o principal benefício não financeiro que uma empresa pode te oferecer.

O primeiro ponto para manter o foco no trabalho é o alinhamento entre lideranças e colaboradores. “Se a empresa já tem um planejamento estratégico, clareza de propósito e metas definidas, a liderança só precisa alinhar quais são essas metas”

Se eu sei o que eu preciso entregar, é mais fácil canalizar a energia.

1- Espaço de trabalho


É fundamental criar um espaço de trabalho para si, deixando à mão tudo que for necessário – não adianta trocar de local a cada dia, já que isso afeta diretamente a produtividade. “Não dá para ficar de pijama, é preciso resistir à tentação do sofá. A escolha do ambiente é importante. Há várias questões ergonômicas que não podemos cumprir normalmente, mas o local precisa ser minimamente confortável, já que não sabemos por quanto tempo o home office vai ser necessário”

Provavelmente terá muitas reuniões. Invista em um microfone de boa qualidade para ser bem ouvido nas reuniões e garanta que não tenha cachorro latindo, criança chorando ou alguém entrando no seu escritório falando alto enquanto você está em reunião. Isso tira a credibilidade da empresa que você representa. Invista numa boa internet e estável e tenta utilizar a rede cabeada ao invés do WIFI. Nada pior que uma reunião cancelada porque sua internet tá falhando. Uma boa cadeira confortável.

2 - Evite distrações


Se você tem filhos, gato, papagaio, cachorro, estabeleça limites para eles. Crianças aprendem cedo, então comece cedo a deixar claro que, embora você esteja em casa, aquele é seu local de trabalho.

O João não ligaria para o seu trabalho pedindo ajuda com aquele problema insolúvel de matemática da quarta série, correto? Então ele não deve ligar e, principalmente, você não deve permitir que ele faça isso quando estiver trabalhando em casa.Resolver problemas pessoais durante o horário de trabalho também está fora de questão. Você e as pessoas têm de entender que você está em casa, mas está trabalhando, caso contrário, tchau, tchau produtividade.

3 - Comunique-se


Estabeleça interações com quem quer que seja que você trabalhe. Seu chefe, colegas, clientes ou fornecedores. Lembre-os de que você existe. O trabalho remoto pode ser uma armadilha, se você se torna apenas e tão somente o desconhecido atrás do computador. Quando possível, faça reuniões presenciais com clientes e fornecedores, se você for seu próprio patrão.Se você é o empregado de alguém, essa dica torna-se ainda mais crucial. Informe ao seu chefe quando abrir os trabalhos, mantenha contato frequente com ele. Faça com que ele se lembre que você existe.

Melhore sua comunicação e feedbacks: Como o seu cliente/líder não está te vendo sentado ali trabalhando, é bom que você dê respostas mais rápidas e atualizações de status frequentes sobre as suas demandas. Assim, eles ficam mais tranquilos que o trabalho está sendo feito e você está focado na entrega.

4 - Faça pausas


Trabalhando no escritório, longe de casa, de vez em quando você dava uma levantadinha para ir ao banheiro, beber uma água, pegar um café. Adote esse hábito, também, quando estiver ralando em casa. Essas pausas são fundamentais para espairecer as ideias e seguir para a próxima tarefa. Também podem ser úteis para ajudá-lo a resolver um problema aparentemente insolúvel, porque dá o distanciamento, muitas vezes, necessário para enxergar a situação como um todo.

Sabemos que trabalhar em casa pode ser desafiador para sua produtividade, mas não seja tão duro consigo mesmo. Evite passar horas a fio com os olhos grudados na tela do computador. Faça uma pausa pela causa. Ok, você trabalha em casa, mas isso não significa que sua jornada diária de trabalho deve ser semelhante à praticada no início da Era Industrial.

Isso vale independentemente do horário que você escolher para executar suas atividades. Se você sente que produz mais à noite, e seu negócio permite que trabalhe nesse período, por que não? Afinal, esta é uma das vantagens de trabalhar em casa.


5 - Saia do trabalho no fim do dia


Sua jornada de trabalho chegou ao fim? Ótimo. Levante-se e vá embora do escritório, mesmo que ele fique na sua casa. O importante aqui é não se tornar um refém do trabalho dentro da própria casa. Se você decidiu que sua jornada de trabalho acaba às seis da tarde, levante da cadeira às seis da tarde e vá fazer alguma outra coisa da vida.

Afinal, se você tivesse de se locomover para o escritório todo dia não estaria disponível 24 horas por dia, não é mesmo?

Workaholic: Quem trabalha remoto precisa tomar cuidado para não ficar um Workaholic e tentar se desconectar da empresa quando acabar o seu expediente. É muito comum ver pessoas sempre conectadas na empresa e disponíveis em qualquer problema, já que o escritório dele é a própria casa.



Bonus Plus + Ferramentas para home-office


Google Hangouts Meet

Também criado pelo Google, o Hangouts Meet é focado em videoconferências para equipes. Uma praticidade é poder enviar o link da chamada para qualquer participante, sem a necessidade de instalar aplicativos ou extensões. Outro benefício é a integração com o Google Suite, conectando as videoconferências com o calendário de cada funcionário, por exemplo.

Até julho deste ano, o Hangouts Meet dará acesso gratuito a funcionalidades avançadas. Isso significa poder realizar chamadas com até 250 pessoas ou fazer uma transmissão ao vivo para 100 mil usuários. Essas reuniões também podem ser gravadas e armazenadas no Google Drive.

Trello

O Trello é uma ferramenta colaborativa para organizar tarefas individuais ou em grupo. Bastante intuitivo, o programa apresenta quadros em que são colocadas as listas de tarefas separadas por cartões coloridos com prazos e objetivos definidos.

A plataforma ainda oferece recursos de checklist para indicar pontos imprescindíveis ao projeto, upload de arquivos e etiquetas coloridas que permitem ao usuário separar os arquivos por temas. É semelhante à organização dos lembretes com post-its. O Trello oferece planos gratuitos e pagos, e está disponível para Android, iPhone e PC.

Clicksign 

O Clicksign oferece gestão e assinatura de documentos com validade jurídica. O plano básico dá direito a cinco documentos por mês. Com a ferramenta, é possível assinar à distância documentos urgentes que não podem esperar o surto do Coronavírus.

Bitrix24

A Bitrix24 é uma plataforma de gerenciamento de projetos e colaboração que gera relatórios, faz controle de tempo em atividades e possui grupo de bate-papo. A empresa ampliou a versão gratuita para uso ilimitado de usuários devido ao Coronavírus.

WeTransfer

O WeTransfer é um programa para compartilhamento de arquivos grandes pela Internet bastante útil para trabalho remoto. Na versão gratuita, é possível enviar até 2 GB de arquivos para até 20 e-mails. Para utilizar, é só fazer o download que o documento chega até o destinatário em forma de arquivo zipado.

Toggl

O Toggl é uma ferramenta de controle das horas trabalhadas disponível para PC, Android e iPhone (iOS) que mensura o tempo investido em cada projeto ou cliente. O programa faz essa contagem automaticamente por funcionário ou equipe, e gera relatórios detalhados, eliminando a necessidade do preenchimento de planilhas. Essa pode ser uma boa solução para fazer o controle de horas trabalhadas durante o home office.

RescueTime

Você sabe quando tempo gasta em cada site? Esse aplicativo pode calcular para você que busca mais produtividade e equilíbrio entre vida e trabalho. Perfeito para quem perde muito tempo checando e-mails ou nas redes sociais. É possível bloquear alguns sites por períodos do dia.



E qual a opinião de vocês? Conhecem mais algum item importante que nao consideramos.
Deixem aqui nos comentários, um grande abraço e até a próxima.

segunda-feira, 3 de fevereiro de 2020

Confira as últimas atualizações disponíveis para cada versão do SQL Server

Fala Galera lançado a versão SQL Server 2019, disponível para infraestrutura local e Azure.
Em contêineres (containers) Windows Server, Linux e Docker divirtam-se com esta edição.

Estamos com alguns projetos pessoais, nascimento do meu primeiro filho
mas e em breve retornamos com a sequencia de Tópicos

Dicas que todo DEV deveria conhecer ...





Para outras versões segue os últimos service packs, cumulative updades e fix

mantenha sempre seu ambiente atualizado ...



VersãoPacote mais recenteÚltima atualizaçãoInformações 
Servidor SQL 2019NoneCU1 para 2019 (15.0.4003.23 - janeiro 2020)SQL Server 2019 
SQL Server 2017NoneCU18 para 2017 (14.0.3257.3 - dezembro de 2019)SQL Server 2017 
SQL Server 2016SQL Server 2016 SP2 (13.0.5026.0 - abril 2018)
CU11 para 2016 SP2 (13.0.5598.27 - dezembro 2019)
SQL Server 2016 
SQL Server 2014SQL Server 2014 SP3 (12.0.6024.0 - outubro 2018)
CU4 para 2014 SP3 (12.0.6329.1- julho 2019)
SQL Server 2014 
SQL Server 2012SQL Server 2012 SP4 (11.0.7001.0 - setembro 2017)CU10 para 2012 SP3 (11.0.6607.3 - agosto 2017) SQL Server 2012 
Servidor SQL 2008 R2SQL Server 2008 R2 SP3 (10.50.6000.34 - setembro 2014) Nota Versão mais recente e final para esta versãoSQL Server 2008 R2 
SQL Server 2008SQL Server 2008 SP4 (10.0.6000.29 - setembro 2014) Nota Versão mais recente e final para esta versãoSQL Server 2008 
Servidor SQL 2005SQL Server 2005 SP4 (9.00.5000.00 - Dezembro de 2010)
SQL Server 2005 


segunda-feira, 20 de janeiro de 2020

SQL SERVER - Dicas que todo DEV deveria conhecer part-4

    Nesta sequencia de tópicos abordaremos algumas dicas, que todo desenvolvedor deveria ter a oportunidade de conhecer. Todo desenvolvedor que programa em T/SQL, precisa estar atento a algumas "tips" do SQL Server em seu dia-a-dia na empresa.

Dicas part-1 Transaction Log
Dicas part-2 Variáveis ​​table e JOIN's & Criação de tabelas dentro de stored procedures
Dicas part-3 Keywords performance



Parte 4 - Ad Hoc Queries (Forced Parameterization)

Uma Consulta Ad Hoc é um tipo de consulta SQL em um banco de dados que é criada na hora,
no momento em que surge uma necessidade, a partir de um requisito específico.

Ad hoc é uma expressão em latim que significa “para este propósito“.  Ou seja, a consulta é criada apenas para satisfazer aquela necessidade específica, aquele propósito, em um momento específico.

(Que não seja generalista, Que não seja utilizável em mais de um caso) e que não é salva no cache do SGBD como por exemplo fazemos com estored procedures, funções ou scripts, para que sejam reutilizados posteriormente.


É interessante notar que em ambientes onde queries Ad Hoc representam um percentual considerável do workload total,  quantidade de compilações pode se tornar um problema, independente do tamanho do servidor.

O motivo é simples, o SQL Server, por padrão, produz diferentes planos de execução para cada query Ad Hoc

Por exemplo:

Query 1
SELECT ColunaA, ColunaB, ColunaC FROM Tabela WHERE ColunaA = 'X'

Aqui o SQL compilaria e guardaria no cache o plano de execução utilizado para encontrar registros onde o valor = X.

Query 2
SELECT ColunaA, ColunaB, ColunaC FROM Tabela WHERE ColunaA = 'Y'

Bem, numa execução parametrizada (Uma stored procedure, por exemplo), o SQL Server simplesmente poderia reutilizar o plano da primeira query já que a mudança foi mínima (apenas o valor utilizado no filtro), porém a engine relacional entende como uma nova query, ou seja,
durante o processo de otimização da query o Query Optmizer recebe um cache miss, que basicamente indica que não há um plano de execução existente para esta query e ele então é responsável por gerar e armazenar esse novo plano no cache, mesmo sendo praticamente igual ao plano anterior.

Quais opções eu tenho para diminuir o número de compilações?

Bem, se você acredita que a grande maioria das suas queries utilizam planos similares para serem executadas, Não faça o simplista SELECT * FROM puro, você poderia utilizar a opção system stored procedure sp_executesql. Quando utilizada, você está basicamente forçando a parametrização da query especifica.


** Por complexidade, estamos detalhando aos desenvolvedores apenas o Forced Parameterization, sem a necessidade de ativar o "optimize for ad hoc workloads" por Database, que ficaria sob responsabilidade mais detalhadas dos encarregados pela Base de dados (DBA's).

Por exemplo:
 EXECUTE sp_executesql  N'SELECT ColunaA, ColunaB, ColunaC FROM Tabela WHERE ColunaA = @valor', N'@valor varchar(1)', @valor = 'X'; 

Nesta execução, se observarmos o plano armazenado em cache seria algo mais ou menos assim:
SELECT ColunaA, ColunaB, ColunaC FROM Tabela WHERE ColunaA = @valor.

Ou seja, não há um valor específico armazenado junto ao plano, o que faz com que a próxima execução, independente do parâmetro utilizado, encontre um plano satisfatório já armazenado em cache.

Há uma pequena linha entre essa opção ser boa ou não para um determinado ambiente,
já que um plano pode ser realmente bom para várias queries e aí reduzir o número de compilações e consequentemente o tempo de CPU (e memória consumida) ou impactar várias das queries porque cada uma gosta de um plano específico tudo uma questão de Testar.

Boa sorte, uma reflexão por Jack Li;

"If things don’t work out, it’s easy to back it out. Over the course of troubleshooting performance issues, I have used this trick many times." Jack Li


Fique por dentro, e acompanhas essas e outras dicas aqui no blog.
Grande abraços a todos.