Material de Apoio – Fevereiro 2018


Boa tarde.

Tudo bem? E ai esta curtindo o carnaval?

Espero que sim, eu estou aqui mais uma vez procurando colaborar e compartilhar com a comunidade técnica em mais um post dedicado exclusivamente ao meu blog. Fico feliz em encontrar você aqui fazendo mais uma visita ao meu blog, neste feriado, espero que tenha gostado do conteúdo aqui encontrado.

O post de hoje

 

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o primeiro do ano de 2018 e de número 155 no total desta sessão.

Para aqueles que já acompanham o meu blog a um certo tempo, os posts dedicados a sessão Material de Apoio, possuem o objetivo de compartilhar o conhecimento de recursos, funcionalidades e procedimentos que podemos realizar no Microsoft SQL Server.

Hoje não será diferente, estou trazendo alguns dos mais recentes scripts  catalogados nos últimos meses, que atualmente estão compondo a minha galeria de códigos formada ao longo dos anos de trabalho como DBA e atualmente como Professor de Banco de Dados.

Neste post você vai encontrar arquivos relacionados com os seguintes temas:

  • Armazenamento de arquivos;
  • Cláusula Values;
  • Comando Select;
    Comando Top;
  • Endereço de e-mails;
  • Excel;
  • Grant All Permissions;
  • Impactos na Ordenação de dados;
  • Índices;
  • Ordenação de Colunas;
  • Passwords;
  • Performance;
  • Random Character;
  • Tabelas;
  • User Defined Function; e
  • Validação de dados.

Espero que este conteúdo possa lhe ajudar em seus atividades profissionais e acadêmicas. Por questões de compatibilidade com a plataforma WordPress.com, todos os arquivos estão renomeados com a extensão .doc ao final do seu respectivo nome, sendo assim, após o download torna-se necessário remover esta extensão, mantendo somente a extensão padrão .sql.

Material de Apoio

A seguir apresento a relação de arquivos  selecionados:

1 – Material de Apoio – Fevereiro 2018 – Realizando a validação de endereços de e-mail.sql

2 – Material de Apoio – Fevereiro 2018 – Impacto na Ordenação de Colunas em Índice – Comandos DML.sql

3 – Material de Apoio – Fevereiro 2018 – Generating A Password in SQL Server with T-SQL from Random Characters.sql

4 – Material de Apoio – Fevereiro 2018 – Simple SQL Server Function to Generate Random 8 Character Password.sql

5 – Material de Apoio – Fevereiro 2018 – Comando Select em conjunto com comando Top e cláusula Values.sql

6 – Material de Apoio – Fevereiro 2018 – Atribuindo Grant All para todas as tabelas.sql

7 – Material de Apoio – Fevereiro 2018 – Como armazenar arquivos do Excel diretamente no SQL Server.sql

Fique a vontade para copiar, editar, compartilhar e distribuir estes arquivos com seus contatos, aproveite se possível deixe seu comentário, críticas, sugestões e observações.

Nota: Todos os arquivos disponibilizados foram obtidos ou criados com autorização de seus autores, sendo estes, passíveis de direitos autorais.

Links

Caso você queira acessar os posts anteriores da sessão, não perca tempo utilize os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2017/11/04/material-de-apoio-novembro-2017/

https://pedrogalvaojunior.wordpress.com/2017/08/08/material-de-apoio-agosto-2017/

https://pedrogalvaojunior.wordpress.com/2017/05/09/material-de-apoio-maio-2017/

Agradecimento

Quero agradecer imensamente a sua visita, ainda mais hoje neste feriadão prolongado de carnaval.

Não deixe de acessar os outros posts das demais sessões, o próximo post desta sessão será publicado no mês de abril, até lá continue curtindo sua vida e compartilhando suas experiência.

Até a próxima, sucesso….

Anúncios

Novo System Center Management Pack v7.0.2.0 para SQL Server


A Microsoft anunciou no último dia 05 de fevereiro no blog SQL Server Release Services a disponibilidade do System Center Management Pack v7.0.2.0 para as versões do SQL Server 2016, 2014, 2012 e 2008.

O Management Pack possibilita a descoberta e monitoramento de bancos de dados, agentes do SQL Server e outros componentes relacionados usando o System Center Operations Manager. De acordo com o anúncio da Microsoft, a versão 7.0.2.0 traz correções para múltiplos bugs. Um deles faz com que scripts de monitoramento falhem com o erro “No coercion operator is defined…”.

System Center Management Pack v7.0.2.0 para SQL Server

Faça o download do System Center Management Pack v7.0.2.0 para SQL Server

Download para SQL Server 2016
Download para SQL Server 2014
Download para SQL Server 2008 e 2012
Download para SQL Server Dashboards

Mais detalhes e a lista com os bugs corrigidos estão disponíveis no post com o anúncio da Microsoft.

Fontes e Direitos Autorais:  – 05/02/2018.

Microsoft Virtual Academy – Novo treinamento sobre noções básicas do Windows Server 2016


Nos últimos dias a Microsoft adicionou a sua biblioteca de cursos on-line disponibilizados no Microsoft Virtual Academy, um novo curso dedicado exclusivamente ao Windows Server 2016, trata-se do curso de Noções Básicas, focado em profissionais, estudantes e entusiastas que querem conhecer um pouco mais sobre o sistema operacional da Microsoft utilizado em servidores.

A Microsoft Virtual Academy (ou MVA) oferece treinamento online da Microsoft realizado por especialistas para ajudar os tecnólogos a aprender constantemente, com centenas de cursos em múltiplos idiomas. A MVA é gratuita e o serviço inteiro é hospedado no Microsoft Azure. Além dos treinamentos, ela também oferece para download diversos ebooks gratuitos.

O treinamento é dividido em seis módulos que apresentam a versão 2016 do Windows Server, que foi lançada em setembro de 2016 durante a conferência Ignite e disponibilizada oficialmente em outubro do mesmo ano.

O Treinamento

O primeiro módulo centra-se na instalação do novo sistema operacional e na comparação da funcionalidade de diferentes versões.

No segundo módulo, são apresentadas as novas funções na área de identidade. O terceiro módulo apresenta os novos recursos da rede.

O módulo 4 fornece uma visão geral dos novos recursos e melhorias na memória. No quinto módulo, são apresentadas as novas funções no campo da virtualização. Após uma pequena introdução ao Hyper-V, também é mostrado como criar e configurar máquinas virtuais.

No último módulo, a Microsoft aborda os contêineres que fornecem uma extensão da virtualização.

Treinamento gratuito: Noções básicas sobre o Windows Server 2016
O treinamento é dividido em seis módulos que apresentam a versão 2016 do Windows Server, que foi lançada em setembro de 2016 durante a conferência Ignite e disponibilizada oficialmente em outubro do mesmo ano

Módulos do treinamento gratuito Noções básicas sobre o Windows Server 2016:

01 | Introdução ao Windows Server 2016
O primeiro módulo se concentra na instalação do novo sistema operacional e na comparação da funcionalidade de diferentes versões.

02 | Serviços de diretório do Windows Server 2016
No segundo módulo, são apresentadas as novas funções no campo da identidade.

03 | Serviços de rede no Windows Server 2016
No terceiro módulo você receberá uma introdução às novas funções na rede.

04 | Soluções de armazenamento do Windows Server 2016
Este módulo fornece uma visão geral dos novos recursos e melhorias de memória.

05 | Virtualização do Windows Server 2016
No quinto módulo são apresentadas as novas funções no campo da virtualização.

06 | Windows Server 2016 Container Basics
O último módulo tem como foco os contêineres.

Para maiores informações e acesso ao treinamento clique aqui.

Fontes e Direitos Autorais: Microsoft.com – 05/02/2018.

Microsoft confirma que novo Office 2019 só rodará no Windows 10


A Microsoft confirmou ontem dia 01/02, que o novo Office 2019 será lançado no segundo semestre de 2018 e que ele só rodará em versões suportadas do Windows 10. Ele não rodará no Windows 7 e em versões anteriores. A nova versão do Office foi anunciada em setembro passado durante a conferência Ignite.

A confirmação de que o Office 2019 só rodará no Windows 10 foi feita no mesmo post onde a empresa anunciou que o prazo de suporte para o Windows 10 v1607, 1703 e 1709 foi estendido.

A nova versão do Office será lançada no segundo semestre de 2018 e versões Preview começarão a ser disponibilizadas no segundo trimestre deste ano.

Além do Office 2019, novas versões do Exchange, SharePoint e Skype for Business também serão lançadas no segundo semestre. Já as aplicações para servidores do novo Office só rodarão na próxima versão do Windows Server.

Microsoft confirma que o Office 2019 só rodará no Windows 10Os aplicativos do Office 2019, como o Word e Excel, só estarão disponíveis no modelo “Click-to-Run”, como já ocorre com o Office 365. A empresa não disponibilizará instaladores MSI para eles. Já as aplicações para servidores continuarão tendo instaladores MSI. Sobre o período de suporte, ele terá cinco anos de suporte base (ou mainstream) e dois anos de suporte estendido.

Fontes e Direitos Autorais: Microsoft TechNet – Windows for IT Pros – Caitlin Fitzgerald – 01/02/2018.

Microsoft libera o .Net Core v2.0.5


A Microsoft disponibilizou para download nesta semana o .NET Core v2.0.5. Esta versão pode ser utilizada para desenvolvimento via linha de comando, editor de texto, Visual Studio 2017, Visual Studio Code ou Visual Studio for Mac.

O .NET Core é uma versão modular, multiplataforma e open-source do .NET Framework. O SDK (kit para desenvolvimento de software) v2.1.4 e o .NET Core Runtime v2.0.5 para Windows estão disponíveis para download aqui.

Na mesma página é possível encontrar o .NET Core e outros downloads para Linux e macOS. Instruções para instalação em diferentes distribuições do Linux estão disponíveis no link acima.

Imagens da versão 2.0.5 do .NET Core também estão disponíveis no Docker Hub. Elas podem ser usadas no Linux e no Nano Server.

Microsoft disponibiliza o .NET Core v2.0.5
A Microsoft disponibilizou para download nesta semana o .NET Core v2.0.5. Esta versão pode ser utilizada para desenvolvimento via linha de comando, editor de texto, Visual Studio 2017, Visual Studio Code ou Visual Studio for Mac

Fontes e Direitos Autorais: Baboo.com –  11 jan 2018 | 9:42 am.

Microsoft anuncia o lançamento do Powershell Core 6.0


A Microsoft anunciou nesta semana a disponibilidade do PowerShell Core 6.0, uma versão multi-plataforma e open-source do PowerShell, para Windows, macOS e Linux.

Apesar do “6.0” no nome, esta é a primeira versão oficial do PowerShell Core.

A versão para Windows do PowerShell Core 6.0 é compatível com o Windows 7, Windows 8.1, Windows 10, Windows Server 2008 R2, Windows Server 2012 R2 e Windows Server 2016.

A versão para macOS é compatível com a versão 10.12 e posteriores e a versão para Linux é compatível com distribuição como Ubuntu, CentOS, Red Hat Enterprise Linux, OpenSUSE e Fedora.

Assim como o .NET e o .NET Core, o PowerShell Core é uma versão open-source do PowerShell. A Microsoft não pretende mais lançar novas versões do Windows PowerShell “normal”, com a 5.1 sendo a última*.

*Ela continuará recebendo correções durante seu ciclo de vida, mas a 5.1 é a última grande versão do Windows PowerShell.

O PowerShell Core também pode ser usado mesmo em sistemas com o Windows PowerShell instalado.

Alguns recursos suportados pelo Windows PowerShell, como PowerShell Workflows, Snap-ins e cmdlets WMlv1, não são suportados no PowerShell Core 6.0, mas isso pode mudar no futuro.

O PowerShell Core será atualizado regularmente pela Microsoft.

Microsoft lança o PowerShell Core 6.0

A empresa anunciou seu plano de tornar o PowerShell open-source e compatível com macOS e Linux em 2016. A empresa também disponibilizou uma versão de testes na época.

Profissionais de TI interessados podem obter mais informações no post com o anúncio da versão 6.0 publicado aqui pela Microsoft.

Instruções para download e instalação do PowerShell Core 6.0 no Windows podem ser encontradas aqui. Já as instruções para download e instalação no macOS e Linux estão disponíveis aqui.

Fontes e Direitos Autorais: PowerShell Team Blog – 10/01/2018.

#19 – Para que serve


Salve galera, boa tarde.

Feliz Ano Novo, Feliz 2018, o tempo passou e hoje dia 02/01 nos encontramos no primeiro dia útil para grande maioria da população mundial, mas que dureza pensar que temos mais 365 dias pela frente para superarmos, por outro lado que bom pensar assim.

Neste primeiro post de 2018 não vou trazer nenhuma novidade relacionada ao Microsoft SQL Server ou banco de dados, mas sim compartilhar como faço em alguns momentos, conceitos já conhecidos da grande maioria.

Hoje quero trazer para vocês um dos assuntos mais discutidos quando estamos trabalhando com nossos servidores de banco de dados, estou me referindo ao período de processamento do comando select dentro de um bloco de transação conhecido como Ciclo de Vida de Query através do comando Select.

Sendo assim, chegou a hora de conhecer um pouco mais sobre o primeiro post de 2018, post de número 19 da sessão Para que serve. Entã seja bem vindo ao #19 – Para que serve – Ciclo de Vida de Query através do comando Select.


Introdução

Um dos comandos mais utilizados em qualquer Sistema Gerenciador de Banco de Dados ou propriamente um Banco de Dados é o comando Select, sendo este responsável em recuperar linhas do banco de dados e permite a seleção de uma ou várias linhas ou colunas de uma ou várias tabelas, no Microsoft SQL Server isso não é diferente.

Basicamente ao se executar um comando Select podemos estar trabalhando com uma simples query ou conjunto de querys que podem formar uma ou mais transações, é com base neste cenário que o comando Select composto por sua conjunto de argumentos e opções permite estabelecer um ciclo de vida dedicado exclusivamente ao seu período de compilação, execução e encerramento.

Desta forma, algumas perguntas podem surgir decorrentes do seu processo de processamento, dentre as quais destaco:

  1. Quais são as etapas para o processamento de um select? 
  2. Onde inicia e onde termina cada processo?

De uma maneira bastante simples e direta vou tentar responder estas questões, iniciando pela organização da estrutura de componentes utilizadas pelo comando Select, conhecidos como:

  • Relation Engine;
  • Storage Engine; e
  • Buffer Pool.
  1. Relational Engine é responsável pelos processos de Query Optmizer, Query Executor e Parse entre outros, avaliando toda a parte algébrica, sintaxe e plano de execução da Query.
  2. Storage Engine é o cara do I/O, responsável pelo gerenciamento e requisições de disco, alocações, Access Methods Code, Buffer Manager e Transaction MGR.
  3. Buffer Pool tem vários papeis, mas, um dos mais importantes é o gerenciamento de memória para o plano de execução e alocação de páginas no data cache.

A Figura 1 apresentada abaixo ilustra um modelo básico da estrutura de relação entre estes componentes:

Figura 1 – Estrutura dos componentes utilizados pelo comando select.

Logicamente, dentro de cada componente podemos encontrar diversos subcomponentes que formam sua estrutura, responsáveis por diversas ações e procedimentos, formando um ecossistema único para cada elemento, dentre eles destaco o Query Optimizer com suas diversas fases de otimização para gerar o plano de execução mais assertivo.

O Ciclo (Select)

O primeiro passo é estabelecer a conexão entre aplicação (ERP, CRM, Web, etc…) e o SQL Server. Para isso, é utilizado um protocolo chamado Network Interface (SNI). No fundo o SNI utiliza um outro protocolo, na verdade, podem existir vários protocolos e o mais conhecido é o famoso TCP/IP.

A Figura 2 abaixo ilustra o inicio do ciclo de vida do comando select através do acesso feito por uma aplicação:

Figura 2 – Representação do inicio do ciclo de vida do comando select.

Ao realizar a conexão através da comanda e do protocolo (TCP/IP), os pacotes TDS (Tabular Data Stream Endpoints) são encaminhados ao Protocolo Layer, que tem como papel “reconhecer e interpretar” o pacote e validar a informação, assim como sua origem (client). Após isso o conteúdo (SQL Command) do pacote é enviado ao Command Parse.

A Figura 3 apresenta o comportamento do Command Parse após o processo de reconhecimento e interpretação do pacote contendo o comando select ser realizado:

Figura 3 – Comportamento do Command Parse após o processo de reconhecimento dos pacotes.

Neste cenário o CMD Parser vai fazer o seu trabalho, primeiro validando o T-SQL, checando sintaxe, nomes de objetos, parâmetros, palavras chaves. A segunda parte é procurar no Buffer Pool se já existe um plano de execução compatível para está query, se sim, ele recupera este plano e executa (Query Executor), caso contrário, passa o result da análise (Query Tree) para o Query Optmizer que é o responsável por gerar o Execution Plan (plano de execução) que será usado na execução (próxima etapa) do ciclo.

Ao receber as instruções o Query Optimizer,  identifica a query realizando diversas etapas (fases 0,1,2) de otimização, afim de encontrar o plano mais eficiente, com base no “cost-based” (I/O, CPU). Nesta etapa as estatísticas são utilizadas servindo como Input de informação para tomada de decisão do Query Optimizer. Após o termino desta etapa, o plano de execução está pronto, passando o bastão para o Query Executor

O Query Executor é quem executa a Query, na verdade ele executa o plano de execução, colocando os operadores para trabalhar. É neste ponto também que ocorre a interação com a Storage Engine via interface Access Methods (OLE DB).

Seguindo em frente, Access Methods passa a solicitação para o Buffer Manager recuperar a página de dados, se a página especifica estiver em memória, o Buffer Pool solicita ao Data Cache que recupere a pagina, e retorna ao Access Methods (leituras logicas). Ao contrário, os dados são recuperados do disco (leituras físicas), colocados em cache e devolvendo o controle para o Access Methods. 

De posse dos dados, o Access Methods devolve a informação para o Relational Engine que será enviada ao Client que a solicitou, assim o resultando do comando select é apresentado na tela da aplicação exibindo assim os dados solicitados pelo usuário. Desta maneira, nosso ciclo ou melhor o ciclo de vida do comando select esta concluído, conforme a Figura 4 apresenta abaixo:

Figura 4 – Ciclo de vida do comando select concluído e dados apresentados para o usuário.

Com isso chegamos ao final do primeiro post de 2018 e post de número 19 da sessão Para que serve.


Referências

https://docs.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql

https://technet.microsoft.com/en-us/library/ms189559(v=sql.90).aspx

http://www.sqlservergeeks.com/sql-server-architecture-part-2-the-relational-engine/

https://blogs.msdn.microsoft.com/tcaserta/2016/01/04/sql-server-fundamentos-storage-engine-parte-i/

https://blogs.msdn.microsoft.com/tcaserta/2016/01/04/sql-server-fundamentos-storage-engine-parte-i/

Links

Caso você ainda não tenha acessado os posts anteriores desta sessão, fique tranquilo é fácil e rápido, basta selecionar um dos links apresentados a seguir:

https://pedrogalvaojunior.wordpress.com/2017/12/15/18-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/11/24/17-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/10/01/16-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/06/28/15-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/04/30/14-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/03/25/13-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/01/23/12-para-que-serve/

Conclusão

Como sempre a Microsoft e toda sua equipe nos surpreende com sua capacidade de trabalho, fortalecendo cada vez mais o Microsoft SQL Server não somente com um SGBD ou ferramenta de banco de dados, mas sim um ambiente completo para qualquer tipo de análise, desenvolvimento e administração que esteja relacionada com dados.

Este é o fantástico Microsoft SQL Server, surpreendente em todos os sentidos…

Agradecimentos

Mais uma vez obrigado por sua ilustre visita, sinto-me honrado com sua presença, espero que este conteúdo possa lhe ajudar e ser útil em suas atividades profissionais e acadêmicas.

Um forte abraço, até o próximo post da sessão Para que serve…..

Valeu.