Material de Apoio – Abril 2019


Olá, muito bom dia….

Tudo bem? Antes de começar este post, quero lhe perguntar: E ai já se pesou? Anotou na balança ou no seu banco de dados da tabela de pesos o quanto você esta pesando antes da páscoa! KKKK, é minha gente, estamos no mês de abril, a páscoa esta chegando e com ela o coelhinho trazendo muitos docinhos…..

Bom, antes de darmos aquela engordadinha com tantos chocolatinhos, balinhas e docinhos desta doce época do ano, estou de volta cumprindo a minha missão de  colaborar e compartilhar com a comunidade técnica mais um post da sessão Material de Apoio dedicado exclusivamente ao meu blog.

Espero que você esteja gostando do conteúdo aqui disponibilizado, como também, possa me ajudar a torná-lo ainda melhor no decorrer do tempo com a sua participação.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o segundo post da sessão em 2019 e de número 162 no total da mesma.

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:

  • Acessos;
  • Any Constraints;
  • Arquivo XLS;
  • Arquivo MDB;
  • Cálculo de dias úteis;
  • Casas Decimais;
  • Comando Backup Database;
  • Comando Backup Database With Move Option;
  • Comando Declare;
  • Comando Deny;
  • Comando Grant;
  • Comando Insert;
  • Comando OpenDataSource;
  • Comando OpenRowSet;
  • Comando Restore Database;
  • Comando Revoke;
  • Comando Select;
  • Comando Update;
  • Constraints;
  • Create Database;
  • Create Logins;
  • Create Table;
  • Create Users;
  • Declaração de Variáveis;
  • Delete Cascade;
  • Diretiva Set;
  • Drop Table;
  • Exportação de Dados;
  • Função CharIndex;
  • Função DataLength;
  • Função Floor;
  • Função Left;
  • Função Len;
  • Função Right;
  • Gerenciamento de acesso para Banco de Dados e Tabelas;
  • Importação de Dados;
  • Logins;
  • Microsoft Access;
  • Microsoft Excel;
  • Permissões;
  • Schemas;
  • Stored Procedure;
  • Stored Procedure SP_Attach_DB;
  • Stored Procedure SP_Detach_DB;
  • Tipo de Dados Decimal;
  • Tipo de Dados Int;
  • Tipo de Dados Money;
  • Update Cascade; e
  • Users.

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 .docx 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 – Abril – 2019 – Comando – Alter Table + Any Constrainst.sql

2 – Material de Apoio – Abril – 2019 – Comando – Alter Table With NoCheck.sql

3 – Material de Apoio – Abril – 2019 – Identificando a quantidade de Casas Decimais.sql

4 – Material de Apoio – Abril – 2019 – Calculando Dias Úteis.sql

5 – Material de Apoio – Abril – 2019 – Realizando o Attach e Detach Database.sql

6 – Material de Apoio – Abril – 2019 – Gerenciando – Acesso para Banco de Dados.sql

7 – Material de Apoio – Abril – 2019 – Gerenciando – Acesso para Tables.sql

8 – Material de Apoio – Abril – 2019 – Stored Procedure P_ImportarBanco.sql

9 – Material de Apoio – Abril – 2019 – OpenDataSource lendo dados em um arquivo XLS.sql

10 – Material de Apoio – Abril – 2019 – Utilizando comando OpenRowSet para importar dados do Microsoft Access.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/2018/12/18/material-de-apoio-dezembro-2018/

https://pedrogalvaojunior.wordpress.com/2018/10/30/material-de-apoio-outubro-2018/

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

https://pedrogalvaojunior.wordpress.com/2018/06/19/material-de-apoio-junho-2018/

Agradecimento

Quero agradecer imensamente a sua visita, sinto-me honrado e orgulhoso de contar com a sua presença.

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 junho, até lá, continue aproveitando cada momento da sua vida, desfrutando com muita sabedoria os momentos de galeria e também os desafios que são colocados ao seu redor.

Um forte abraço, muita saúde, sucesso e nos encontramos em breve.

Valeu.

Visual Studio 2019 Release Candidate (RC) já está disponível


Em seu blog oficial dedicado ao Visual Studio, a Microsoft realizou o anuncio informando sobre a liberação da primeira versão RC – Release Candidate do novo Microsoft Visual Studio 2019, o qual será oficialmente apresentando para o mundo no dia 02 de abril.

Release Candidate

Segundo, John Montgomery – Diretor de gestão do programa. “Com esta versão, estamos introduzindo dois produtos “canais“: o canal de lançamento e o canal de visualização.

A partir de hoje, o Visual Studio 2019 RC está disponível no canal de lançamento (visualstudio.com/downloads) e o Visual Studio 2019 Preview 4 está disponível no canal de visualização (visualstudio.com/preview). Ambas as versões podem ser instaladas e usadas lado a lado e, agora, ambos os canais contêm os mesmos bits.

A partir de 2 de abril, a compilação do canal de lançamento (RC) pode ser atualizada para a nossa versão disponível em geral (GA), que estará pronta para uso na produção. O canal de visualização continuará a oferecer uma visão antecipada dos recursos programados, assim como você se acostumou a no Visual Studio 2017.

Visual Studio 2019 canais do produto.

Estamos incrivelmente gratos a todos os usuários que têm vindo a experimentar o Visual Studio 2019 desde a primeira visualização e têm vindo a dar-nos feedback a cada passo do caminho.”

Dentre as edições existentes, a Microsoft desta a Community que manteve presente e passou por diversas melhorias neste nova versão: “Para o Visual Studio Community 2019, estamos fazendo as referências, Application insights (solicitações e exceções), e teste (status de teste e testado por) CodeLens recursos disponíveis, que só estavam disponíveis no Visual Studio Professional e Enterprise Anteriormente.


Isso significa que qualquer usuário do Visual Studio 2019 pode agora obter insights específicos e informações sobre o código, diretamente no editor de código.”

Quer saber mais sobre o Visual Studio 2019? Confira as notas de lançamento disponíveis para esta primeira release candidate e seus detalhes.

Caso deseje realizar o download acesse: https://visualstudio.microsoft.com/downloads/

Fontes e Direitos Autorais: Microsoft – Visual Studio – John Montgomery  – 28/02/2019.
Leia na integra acessando: https://devblogs.microsoft.com/visualstudio/visual-studio-2019-release-candidate-rc-now-available/

Raspberry Pi: 10 opções de kits para você conhecer e se apaixonar


Foto: Shutterstock

O Raspberry Pi é um pequeno computador incrivelmente flexível. Você pode usá-lo para uma ampla gama de projetos: o mesmo hardware pode alimentar uma configuração de jogo retro tão facilmente quanto um servidor de ad-blocking.

Mas para quem nunca lidou com uma placa de circuito em sua vida, começar a usar um Raspberry Pi pode parecer intimidante. Para esses desbravadores iniciantes, existem kits especiais que facilitam o primeiro projeto. Os básicos juntam uma placa Raspberry Pi e os componentes necessários (menos o teclado, mouse e monitor). Opções mais avançadas não possuem a placa Raspberry Pi e, em vez disso, concentram-se no hardware necessário para um projeto específico.

Procuramos as opções no mercado para identificar os melhores kits Raspberry Pi. Nossas principais escolhas incluem alternativas para todos os graus de projetos, quer você queira construir um PC secundário básico ou mergulhar diretamente em projetos avançados no melhor estilo maker.

Como comprar: no site da Raspberry Pi Foundation há uma loja online para a compra das placas. Você também pode encontrar placas e vários kits na Amazon.com.br. Na Amazon.com também é possível encontrar a maioria dos kits mencionados aqui. E uma busca no Google revela que há mais kits sendo vendidos no Brasil do que você imagina. Agora, se você tem amigos na Inglaterra ou vai viajar para lá, nada mais cool do que comprar direto na novíssima loja que a fundação Raspberry Pi inaugurou no shopping Grand Arcade no centro da cidade de Cambridge, Reino Unido.

Os Kits

Pi Desktop – Revendedor: Element 14 ; Preço: US$ 50 ; Não inclui a placa Raspberry Pi

Esse kit é básico. Visualmente é uma grande caixa quadrada que vem com uma placa adicional que se conecta ao Raspberry Pi por meio de seus pinos GPIO. Há também uma variedade de elementos tipo PC, incluindo uma interface mSATA, controlador de energia, relógio do sistema e dissipador de calor. Tudo o que você precisa incluir é uma placa Raspberry Pi 3 , um SSD com capacidade de até 1TB e uma atitude DIY de fazer tudo. Em pouco tempo você estará pronto para rodar com seu próprio desktop Raspberry Pi.

CanaKit Basic – Revendedor: CanaKit (via Amazon); Preço: US$ 50; Incluir placa Raspberry Pi 3

A fabricante de kits Raspberry Pi CanaKit oferece um kit básico com apenas os itens essenciais incluídos . Ele vem com uma placa Raspberry Pi 3, carregador, gabinete e dois dissipadores de calor. Os dissipadores de calor não são estritamente necessários, mas são um detalhe agradável. Para começar a funcionar, você precisará adicionar um cartão microSD , teclado, mouse e cabo HDMI.

CanaKit Raspberry Pi 3 Complete Starter Kit – Revendedor: CanaKit (via Amazon) – Preço: US$ 70 – Inclui placa Raspberry Pi 3

Este kit é um avanço do pacote inicial básico. O Complete Starter Kit da CanaKit inclui tudo o que você precisa para começar com um Raspberry Pi: você recebe uma placa Pi 3, um microSD de 32GB com o sistema operacional NOOBS pré-instalado, um gabinete, adaptador de energia, dois dissipadores de calor e um cabo HDMI. Se você quiser cair de cabeça sem ter que esperar por remessas separadas para seus componentes, este kit específico é a melhor alternativa.

Kit Retro Gaming – Revendedor: The Pi Hut – Preço: US$ 90.61 – Inclui placa Raspberry Pi 3

Um dos usos favoritos do Raspberry Pi é montar um console de jogos clássicos. Se você não quer vasculhar a Amazon e outros varejistas pelos materiais que você precisa, este kit de jogos da Pi Hut reúne tudo para você em um só lugar. Além do Raspberry Pi 3 e do case que o acompanha, você tem dois controles de jogos Super NES, um cartão microSD em branco, adaptador microSD para USB, se necessário, e um cabo HDMI de 1,8 m. Por razões legais, o varejista não pode fornecer o sistema operacional ou ROMs de videogame, então você terá que baixar todas essas coisas por conta própria. Se você não tem certeza de como começar, a  PC World tem um tutorial (em inglês) sobre como construir seu próprio console de jogos retro baseado em Pi .

CanaKit Raspberry Pi Kit for Dummies – Revendedor: CanaKit – Preço: US$ 90 – Inclui placa

O kit Raspberry Pi for Dummies é ótimo para quem quer entrar na onde dos hackers de hardware. Ele inclui um livreto Raspberry Pi for Dummies, que serve como uma cartilha para trabalhar com o Raspberry Pi e iniciar seus próprios projetos. O hardware do kit é o que você esperaria: uma placa Raspberry Pi 3, cartão microSD com o sistema operacional NOOBS instalado, fonte de alimentação, caixa Raspberry Pi 3, cabo HDMI de dois metros e dois dissipadores de calor. Você também recebe uma placa de montagem, fios de jumper (M / M e M / F), LEDs, interruptores de botão, resistores Ohm e um cartão de referência rápida GPIO.

PiAware Aircraft Tracking Kit – Revendedor: ModMyPi – Preço: US$ 110,02 – Inclui placa

Este é um kit de projeto interessante para os fãs de viagens aéreas . Ele permite transformar seu Raspberry Pi 3 em uma estação terrestre ADS-B (transmissão dependente de vigilância automática) – você receberá dados em tempo real de aviões dentro do alcance da antena FlightAware incluída. O kit inclui o Raspberry Pi 3, um estojo Raspberry Pi, cartão microSD com software PiAware instalado, fonte de alimentação, cabo de vídeo, cabo ethernet, dissipador de calor, FlightAware Pro Stick ou Pro Stick Plus, cabo USB, antena 1090MHz, 1090MHz band-pass Filtro SMA e um teclado. Este kit é personalizável, portanto, verifique as várias opções que o ModMyPi oferece antes de pagar.

Kit PiTop v2 – Revendedor: Adafruit – Preço: US$ 300 – Não inclui a placa

Se você está desejando que seu Raspberry Pi 3 vire um laptop, este kit da Adafruit é para você. Você terá que incluir sua própria placa Raspberry Pi , mas ela tem tudo o que você precisa: uma tela de 1080p de 14 polegadas, fácil acesso ao Pi, bem como quaisquer outros cabos ou dispositivos USB, um cartão SD de 8GB com Pi -Top OS, vários cabos e parafusos e carregador. Este kit PiTop de segunda geração é compatível com várias placas Raspberry Pi, incluindo o novo Raspberry Pi 3 Modelo B + .

Google AIY Voice Kit – Revendedor: ModMyPi  – Preço: US$ 32,36 – Não inclui placa

O kit de voz do Google AIY não é para criar um Google desktpo. Em vez disso, ele é um projeto faça-você-mesmo de um Google Home usando um Raspberry Pi 3. Lembrando que o kit não inclui a placa Raspberry Pi. Ele vem com uma placa acessória de voz HAT, placa de microfone de voz HAT, um alto-falante de três polegadas, um botão, fios e componentes variados, e uma caixa de papelão e moldura para abrigar todo o projeto. Para completar o projeto, você precisará de um Raspberry Pi 3 , um cartão microSD , uma chave de fenda Philips e uma fita.

Google AIY Voice Kit v2 – Revendedor: Alvo – Preço: US$ 50 – Inclui placa

O Google ganha uma segunda versão do seu kit de voz AIY que facilita muito a montagem de um Google Home. Este modelo vem com os principais componentes, incluindo um alto-falante, voz HAT e botão de pressão. A grande diferença entre este kit e a versão anterior é que ele vem com a placa Raspberry Pi Zero WH como parte do kit, bem como um cartão SD pré-carregado. Você pode optar por comprar um Raspberry Pi 3 separadamente, é claro. Há também um aplicativo complementar para Android para facilitar a configuração e a configuração sem fio.

Google AIY Vision Kit v2 – Revendedor: Alvo – Preço: US$ 90 – Inclui placa

Semelhante ao seu companheiro de kit de voz, a versão mais recente do Kit de Visão vem com uma placa Raspberry Pi Zero WH incluída e cartão SD pré-carregado. Este kit ajuda os DIYers a criar uma câmera inteligente que pode “reconhecer objetos, detectar rostos e emoções”. Os outros componentes principais são a câmera Raspberry Pi, o Vision HAT, o botão pulsador, o chicote de botões, o LED de privacidade e a campainha. Ele também funciona com o mesmo aplicativo complementar do AIY para Android.

Google AIY Voice Kit v2 – Revendedor: Alvo – Preço: US$ 50 – Inclui placa

O Google ganha uma segunda versão do seu kit de voz AIY que facilita muito a montagem de um Google Home. Este modelo vem com os principais componentes, incluindo um alto-falante, voz HAT e botão de pressão. A grande diferença entre este kit e a versão anterior é que ele vem com a placa Raspberry Pi Zero WH como parte do kit, bem como um cartão SD pré-carregado. Você pode optar por comprar um Raspberry Pi 3 separadamente, é claro. Há também um aplicativo complementar para Android para facilitar a configuração e a configuração sem fio.

Google AIY Vision Kit v2 – Revendedor: Alvo – Preço: US$ 90 – Inclui placa

Semelhante ao seu companheiro de kit de voz, a versão mais recente do Kit de Visão vem com uma placa Raspberry Pi Zero WH incluída e cartão SD pré-carregado. Este kit ajuda os DIYers a criar uma câmera inteligente que pode “reconhecer objetos, detectar rostos e emoções”. Os outros componentes principais são a câmera Raspberry Pi, o Vision HAT, o botão pulsador, o chicote de botões, o LED de privacidade e a campainha. Ele também funciona com o mesmo aplicativo complementar do AIY para Android.

Fontes e Direitos Autorais: cio.com.br – Da Redação, com PC World.
Leia na integra acessando: https://cio.com.br/raspberry-pi-10-opcoes-de-kits-para-makers/

Microsoft Visual Studio 2019 – Lançamento oficial em 02 de Abril


No decorrer desta semana a Microsoft informou na página oficial do Visual Studio, a data de lançamento oficial da próxima versão conhecida como 2019.

A Microsoft lançou o primeiro preview do Visual Studio 2019 em dezembro de 2018, mas ela está se preparando para iniciá-lo a todos em breve. Visual Studio 2019 terá um evento formal para seu lançamento, muito em breve, no dia em 2 de abril, um dia inteiro repleto de sessões sendo transmitido ao vivo e Q&A de oportunidades para desenvolvedores disponível mundo a fora.

Visual Studio 2019 virá com várias melhorias, incluindo vários ajustes da interface do usuário e AI. A alteração mais óbvia se relaciona com sua nova tela de início, que foi redesenhada para trabalhar com repositórios Git. Uma vez que você começou um projeto, você vai notar mais mudanças de interface do usuário, como um novo ícone, um tema azul e uma interface mais limpa.

Além disso, a inclusão do chamado IntelliCode AI permite ao Visual Studio poder ser treinado em seus próprios repositórios, tornando-o melhor em sugerir padrões que são comuns aos projetos de codificação.

O mais recente lançamento também inclui compartilhamento que possibilita conhecer este novo padrão de desenvolvimento, algo que oferecer a quem esta utilizando o Visual Studio colaborar com outros em projetos de codificação.

Existem também melhorias de desempenho mais gerais, e você pode ter uma noção completa do que é novo com Visual Studio 2019, verificando notas de versão da Microsoft.

Para obter mais informações sobre o evento dedicado ao lançamento desta nova versão, acesse: Visual Studio 2019.

Fontes e Direitos Autorais: WindowsCentral.com – Dan Thorp-Lancaster  – 14/02/2019.

Material de Apoio – Fevereiro 2019


Olá, muito bom dia….

Tudo bem? O mês de fevereiro já chegou, ainda não é carnaval no Brasil, mas para alegria e folia da garotada e de nós professores as aulas estão de volta (kkkkk).

Mesmo com toda esta loucura de volta as aulas, estou aqui mais uma vez procurando colaborar e compartilhar com a comunidade técnica em mais um post da sessão Material de Apoio dedicado exclusivamente ao meu blog.

Espero que você esteja gostando do conteúdo aqui disponibilizado, como também, possa me ajudar a torná-lo ainda melhor no decorrer do tempo com a sua participação.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o primeiro post da sessão em 2019 e de número 161 no total da mesma.

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:

  • Check List Diário;
  • Concatenar valores ;
  • Criptografia de Código Fonte;
  • Descriptografia de Código Fonte;
  • Disponibilidade de Ambiente;
  • DMV sys.dm_exec_procedure_stats;
  • DMV sys.dm_exec_query_plan;
  • Formatação de Valores;
  • Função Format;
  • Função Parse;
  • Ordem Crescente de dados;
  • Ordem Descrecente de dados;
  • Plano de Execução;
  • Querys;
  • Stored Procedure;
  • Stored Procedure sp_fixeddrivers; e
  • Texto.

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 .docx 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 2019 – Relação das Querys mais pesadas em conjunto com plano de execução

2 – Material de Apoio – Fevereiro 2019 – Stored Procedure – CheckList Diário – Disponibilidade e Ambiente

3 – Material de Apoio – Fevereiro 2019 – Stored Procedure – sp_fixeddrives

4 – Material de Apoio – Fevereiro 2019 – Stored Procedure para Descriptografia de Stored Procedure

5 – Material de Apoio – Fevereiro 2019 – Stored Procedure – Exibir – Código Stored Procedure Criptografada

6 – Material de Apoio – Fevereiro 2019 – PARSE e FORMAT para alterar exibição de valores

7 – Material de Apoio – Fevereiro 2019 – Função – Formatação de Valores

8 – Material de Apoio – Fevereiro 2019 – Função – Concatenar valores em ordem decrescente

9 – Material de Apoio – Fevereiro 2019 – Função – Contar caracteres específicos dentro de um texto

10 – Material de Apoio – Fevereiro 2019 – Plano de Execução – Obtendo informações sobre Querys e Stored Procedures – sys.dm_exec_procedure_stats + sys.dm_exec_query_plan

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/2018/12/18/material-de-apoio-dezembro-2018/

https://pedrogalvaojunior.wordpress.com/2018/10/30/material-de-apoio-outubro-2018/

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

https://pedrogalvaojunior.wordpress.com/2018/06/19/material-de-apoio-junho-2018/

https://pedrogalvaojunior.wordpress.com/2018/04/05/material-de-apoio-abril-2018/

Agradecimento

Quero agradecer imensamente a sua visita, sinto-me honrado e orgulhoso de contar com a sua presença.

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 aproveitando cada momento da sua vida, desfrutando com muita sabedoria os momentos de galeria e também os desafios que são colocados ao seu redor.

Um forte abraço, muita saúde, sucesso e nos encontramos em breve.

Valeu.

Material de Apoio – Dezembro 2018


Olá, muito bom dia….

Tudo bem? Estamos no mês de dezembro, mês de festividades, e os brasileiros correndo nas ruas, shoppings, comércios em geral para escolher seus presentes e lembrança de Natal, como de costume e a cada ano parece que o tempo voa e não nos damos conta de o quanto nossas vidas tem se tornado um grande roda gigante, repleta de altos e baixos em todos os sentidos.

Como de costume, estou aqui mais uma vez procurando colaborar e compartilhar com a comunidade técnica em mais um post da sessão Material de Apoio dedicado exclusivamente ao meu blog.

Espero que você esteja gostando do conteúdo aqui disponibilizado, como também, possa me ajudar a torná-lo ainda melhor no decorrer do tempo com a sua participação.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o quinto e último do ano de 2018 e de número 160 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:

  • Alter Database;
  • Arquivos de Dados;
  • Colunas Dinâmicas;
  • Contagem de Caracteres;
  • Data e Hora;
  • DBCC ShowFileStats;
  • DBCC ShrinFile;
  • DBCC TraceStatus;
  • Espaço em Disco;
  • Espaço Ocupado em Disco;
  • Extents;
  • FileGroups;
  • Função Char();
  • Função FileProperty;
  • Função Len();
  • Função PadIndex();
  • Função Replace();
  • Função Revert();
  • Função SubString();
  • Operador Composto;
  • Operador Like;
  • Páginas de Dados;
  • Pivot;Strings; e
  • View sys.database_files.

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 .docx 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 – Dezembro – 2018 – Adicionando novos arquivos de dados.sql

2 – Material de Apoio – Dezembro – 2018 – Criando um Pivot com Colunas dinâmicas através da hora.sql

3 – Material de Apoio – Dezembro – 2018 – Invertendo a posição de palavras em uma linha.sql

4 – Material de Apoio – Dezembro – 2018 – Movendo páginas não alocadas, Truncando, Esvaziando e Removendo um arquivo de dados.sql

5 – Material de Apoio – Dezembro – 2018 – Utilizando operador Like em conjunto com Colchetes.sql

6 – Material de Apoio – Dezembro – 2018 – Utilizando operador composto.sql

7 – Material de Apoio – Dezembro – 2018 – Identificando o espaço ocupado e livre para arquivos de dados e log.sql

8 – Material de Apoio – Dezembro – 2018 – Simulando a contagem de um caracter específico dentro de uma string.sql

9 – Material de Apoio – Dezembro – 2018 – Dbcc ShowFileStats – Identificando o número de páginas alocados por extents de acordo com o filegroup.sql

10 – Material de Apoio – Dezembro – 2018 – DBCC TraceStatus – Validar as Trace Flags de inicialização habilitadas.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/2018/10/30/material-de-apoio-outubro-2018/

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

https://pedrogalvaojunior.wordpress.com/2018/06/19/material-de-apoio-junho-2018/

https://pedrogalvaojunior.wordpress.com/2018/04/05/material-de-apoio-abril-2018/

https://pedrogalvaojunior.wordpress.com/2018/02/13/material-de-apoio-fevereiro-2018/

Agradecimento

Quero agradecer imensamente a sua visita, sinto-me honrado e orgulhoso de contar com a sua presença.

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 fevereiro, até lá, continue aproveitando cada momento da sua vida, desfrutando com muita sabedoria os momentos de galeria e também os desafios que são colocados ao seu redor.

Um forte abraço, muita saúde, sucesso e nos encontramos em 2019 (Ano Novo, vida nova e SQL Server 2019 pintando na área).

Valeu.

Microsoft SQL Server 2019 Preview 2.1 liberado


A Microsoft disponibilizou na semana passada através do Microsoft Evaluation Center o Microsoft SQL Server 2019 Preview 2.1. Esta versão está disponível em múltiplos idiomas, este é o segundo Preview público liberado pela Microsoft da nova versão do Microsoft SQL Server.

De acordo com a empresa, o SQL Server 2019 oferece mais segurança, disponibilidade e desempenho para todas as cargas de dados, além de trazer novas ferramentas de conformidade, melhor desempenho em hardware moderno e alta disponibilidade em Windows, Linux e contêineres.

Alguns dos principais recursos do produto, nesta nova versão estão recebendo mais atenção, dentre eles o PolyBase, que apresenta alguns aprimoramentos, permitindo que você possa consultar outros bancos de dados como Oracle, Teradata e Mongo DB diretamente do SQL Server sem mover ou copiar os dados, além disso, pela primeira vez, o SQL Server 2019 vai além do banco de dados relacional com Spark e o Sistema de Arquivos Distribuído (HDFS) inclusos.

Baixe o Microsoft SQL Server 2019 Preview 2.1

O Microsoft Server 2019 Preview 2.1 para Windows está disponível para download, como ISO e como arquivo .cab nos seguintes idiomas: ‎

  • Inglês,
  • Alemão,
  • Japonês,
  • Espanhol,
  • Coreano,
  • Russo,
  • Italiano,
  • Francês,
  • Chinês (simplificado),
  • Chinês (tradicional) e
  • Português (Brasil)‎.

Para maiores detalhes e Instruções para as versões Red Hat Enterprise Server, SUSE Linux Enterprise Server, Ubuntu e Docker estão disponíveis aqui.

Fontes e Direitos Autorais: https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15?view=sqlallproducts-allversions

Short Scripts – Setembro 2018


Buenos dias, bom dia, comunidade….

E ai como passaram os últimos meses?

Pergunto isso, devido ao post anterior desta sessão ter sido publicado no mês de maio, posso imaginar que neste intervalo de tempo nossas vidas apresentaram inúmeras situações, espero que todas possam ter sido dentro do possível boas, assim como a minha, e se caso venha a existir algo mais espinhoso, que você possa ter superado.

Seguindo em frente, que alegria poder te encontrar em mais um post da sessão Short Scripts, uma das sessões mais recentes do meu blog que esta alçando a marca de 34 posts publicados trimestralmente.

Mantendo a tradição estou retornando com mais um conjunto de “pequenos” scripts catalogados e armazenados em minha biblioteca pessoal de códigos relacionados ao Microsoft SQL Server e sua fantástica linguagem de desenvolvimento Transact-SQL.

Como promessa é dívida e deve ser cumprida “ou melhor” compartilhada, estou compartilhando a minha feita a alguns meses no final do último post desta sessão, publicando mais um conjunto de scripts adicionados atualmente na minha biblioteca particular de códigos e exemplos.

O post de hoje

Normalmente compartilho os principais scripts armazenados nos últimos meses, no post de hoje vou fazer um pouco diferente, recentemente tive a necessidade de realizar alguns atividades relacionadas as Split de dados e Collation, sendo assim, decide então compartilhar alguns códigos que estejam envolvidos com estes assuntos e que também se vinculem com outros, dentre os quais destaco:

  • Collate Column,
  • Collate,
  • Collation,
  • Database Collate,
  • Database Collation,
  • Instâncias Microsoft SQL Server,
  • Junção de Tabelas,
  • Page Split,
  • Server Collation,
  • Servidores Microsoft SQL Server,
  • String Split,
  • User Defined Function, e
  • Valores separados por vírgulas.

Chegou a hora, mãos nos teclados, a seguir apresento os códigos e exemplos selecionados para o Short Script – Setembro 2018 . Vale ressaltar que todos os scripts publicados nesta sessão foram devidamente testados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, vale sim todo cuidado possível para evitar maiores problemas.

Fique a vontade para compartilhar, comentar e melhorar cada um destes códigos.

Short Scripts

— Short Script 1  – Identificando Page Split – Método 1  —
SELECT cntr_value
FROM sys.sysperfinfo
WHERE counter_name =’Page Splits/sec’ AND
OBJECT_NAME LIKE’%Access methods%’
Go

— Short Script 2  – Identificando Page Split – Método 2  —
SELECT object_name,
counter_name,
instance_name,
cntr_value, cntr_type

FROM sys.dm_os_performance_counters
WHERE counter_name =’Page Splits/sec’ AND
OBJECT_NAME LIKE’%Access methods%’
Go

— Short Script 3  – Criando um User Defined Function para separação de Strings por vírgula  – Método 1 —
CREATE FUNCTION dbo.UFN_SEPARATES_COLUMNS(@TEXT1 varchar(8000), @COLUMN tinyint, @SEPARATOR char(1))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @POS_START int = 1
DECLARE @POS_END int = CHARINDEX(@SEPARATOR, @TEXT, @POS_START)

WHILE (@COLUMN >1 AND @POS_END> 0)
BEGIN
SET @POS_START = @POS_END + 1
SET @POS_END = CHARINDEX(@SEPARATOR, @TEXT, @POS_START)
SET @COLUMN = @COLUMN – 1
END

IF @COLUMN > 1 SET @POS_START = LEN(@TEXT) + 1
IF @POS_END = 0 SET @POS_END = LEN(@TEXT) + 1

RETURN SUBSTRING (@TEXT, @POS_START, @POS_END – @POS_START)
END
Go

SELECT
dbo.UFN_SEPARATES_COLUMNS(@ISBN, 1, ‘-‘) AS PREFIX,
dbo.UFN_SEPARATES_COLUMNS(@ISBN, 2, ‘-‘) AS REGISTRATION_GROUP,
dbo.UFN_SEPARATES_COLUMNS(@ISBN, 3, ‘-‘) AS REGISTRANT,
dbo.UFN_SEPARATES_COLUMNS(@ISBN, 4, ‘-‘) AS PUBLICATION,
dbo.UFN_SEPARATES_COLUMNS(@ISBN, 5, ‘-‘) AS [CHECK]
Go

— Short Script 4  – Criando um User Defined Function para separação de Strings por vírgula – Método 2  —

Create FUNCTION [dbo].[fnSplitString]
(
@string NVARCHAR(MAX),
@delimiter CHAR(1)
)
RETURNS @output TABLE(splitdata NVARCHAR(MAX)
)
BEGIN
DECLARE @start INT, @end INT
SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)
WHILE @start < LEN(@string) + 1 BEGIN
IF @end = 0
SET @end = LEN(@string) + 1

INSERT INTO @output (splitdata)
VALUES(SUBSTRING(@string, @start, @end – @start))
SET @start = @end + 1
SET @end = CHARINDEX(@delimiter, @string, @start)

END
RETURN
END

Select * from dbo.fnSplitString(‘Querying SQL Server’,”)
Go

— Short Script 5  – Informando o Collate de uma coluna na cláusula Where  —
S
elect campo
From tabela
Where campo collate Latin_General_CI_AS like ‘%á%’
Go

— Short Script 6  – Informando o Collate na declaração de uma coluna e na cláusula Where  —
Select Campo collate Latin_General_CI_AS
From tabela
Where Campo collate Latin_General_CI_AS like ‘%á%’
Go

— Short Script 7  – Alterando o Collate de um Banco de Dados  —
Alter Database MosaicoClient
Collate SQL_Latin1_General_CP1_CI_AI
Go

— Short Script 8  – Alterando o Collate de uma Coluna  —
Alter Table Users
Alter Column [Password] Varchar(12) Collate SQL_Latin1_General_CP1_CS_AS
Go

— Short Script 9  – Identificando o Server Collation  – Método 1 —
Select SERVERPROPERTY (‘collation’)
Go

— Short Script 10 – Identificando o Server Collation  – Método 2 —
Exec sp_helpsort
Go

— Short Script 11 – Identificando o Database Collation —
Select DatabasePropertyEx(‘MRP’,’collation’)
Go

— Short Script 12 – Identificando o Column Collation – Método 1 —
Exec sp_help ‘Produtos’
Go

— Short Script 13 – Identificando o Column Collation – Método 2 —
Select * from Sys.columns
Where Name = ‘Produtos’
Go

— Short Script 14 – Identificando o Column Collation – Método 3 —
Select * from Information_schema.columns
Where Table_Name = ‘Produtos’
Go

Muito bem, missão mais que cumprida! Uma nova relação de short scripts acaba de ser compartilhada, mesmo sendo denominados short entre aspas “pequenos”, posso garantir que todos estes exemplos são de grande importância, apresentam um valor e conhecimento do mais alto nível.


Chegamos ao final de mais um Short Scripts, espero que este material possa lhe ajudar, ilustrando o uso de alguns recursos e funcionalidades do Microsoft SQL Server.

Acredito que você tenha observado que estes códigos são conhecidos em meu blog, todos estão relacionados aos posts dedicados ao Microsoft SQL Server publicados no decorrer dos últimos anos.

Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso.

Links

Caso você queira acessar os últimos posts desta sessão, não perca tempo acesse os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2018/05/10/short-scripts-maio-2018/

https://pedrogalvaojunior.wordpress.com/2018/02/19/short-scripts-fevereiro-2018-transaction-log/

https://pedrogalvaojunior.wordpress.com/2017/12/09/short-scripts-dezembro-2017/

https://pedrogalvaojunior.wordpress.com/2017/09/16/short-scripts-setembro-2017/

Agradecimento

Obrigado mais uma vez por sua visita, fico honrado com sua ilustre presença ao meu blog, desejo e espero que você possa ter encontrado algo que lhe ajudou.

Volte sempre, nos encontraremos mais uma vez na sessão Short Scripts no post do mês de novembro de 2018.

Abraços…

Microsoft SQL Server 2014 Service Pack 2 – Cumulative Update 13


A Microsoft divulgou no último dia 28 de agosto em seu blog SQL Server Release Services a disponibilidade da Atualização Cumulativa 13 (Cumulative Update 13) para SQL Server 2014 SP2.

A CU13 inclui todas as correções para os problemas que foram descobertos depois do lançamento do SQL Server 2014 SP2 e das atualizações cumulativas anteriores lançados até o presente momento.

Caso você deseje realizar o download das atualizações cumulativas anteriores, utilize a relação de links listadas abaixo:

Com base no artigo KB4456287, a atualização traz correções para quatro bugs específicos, dentre eles, um que causa erro de violação de acesso quando você consulta a tabela sysmembers, enquanto outro causa um erro durante a execução do sp_send_dbmail em certos cenários.

Ao instalar a Atualização Cumulativa 13 para SQL Server 2014 SP2, o build (número da versão) será atualizado para o número 12.0.5590.1.

Para realizar o download clique na imagem abaixo:

Fontes e Direitos Autorais: Microsoft Support – https://support.microsoft.com/en-us/help/4456287/cumulative-update-13-for-sql-server-2014-sp2

Microsoft .NET Core v2.1.2 liberado


Em anunciou realizado na última terça-feira dia 10/07, a Microsoft informou a disponibilidade do .NET Core v2.1.2. Trata-se da nova disponível 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) mais recente (v2.1.302) e o .NET Core Runtime v2.1.2 para Windows estão disponíveis para download aqui.

Nesta mesma página você poderá encontrar além do o .NET Core e outros downloads para Linux e macOS, instruções para instalação em diferentes distribuições do Linux também estão compartilhadas.

As imagens para download da versão 2.1.2 do .NET Core estão disponíveis no Docker Hub, compatíveis também  para Linux e no Windows Nano Server.

Através do anúncio, a Microsoft destacou que a versão 2.1.2 traz a correção para a vulnerabilidade CVE-2018-8356.

Acessando https://github.com/dotnet/announcements/issues/73, link disponível no GitHub, você poderá encontrar maiores detalhes e informações sobre esta nova versão do .Net Core.

Fontes e Direitos Autorais: Microsoft.com – 10/07/2018 – Server & Tools Blogs > Developer Tools Blogs > .NET Blog

SQL Operations Studio – Public Preview release (0.27.3) – Março 2018


Salve galera, bom dia.

Quinta – feira, véspera de mais um feriado nacional, o mês de março esta se encerrando mas ainda temos tempinho para produzir muito coisa, e falando justamente em produzir a Microsoft como sempre não perde tempo e esta a todo o vapor para liberar logo a versão final do SQL Operations Studio “o futuro substituto” do ótimo Management Studio.

Versão 0.27.3

Segundo o anúncio realizado ontem dia 28/03 através do SQL Server Blog, uma nova versão do SQL Operations Studio torna-se pública, definida como versão 0.27.3.

A Figura 1 abaixo ilustra a interface desta nova versão:
Figura 1 – SQL Operations Studio 0.27.3.

Lançado de maneira pública e ainda em versão preliminar o SQL Operations Studio, esta passando por um período de grande evolução se levarmos em consideração a primeira versão preview apresentada oficial pela Microsoft em 15/11/2017. Esta nova versão é considerada oficialmente como a quarta maior atualização disponibilizada pelas equipes que trabalham em seu desenvolvimento.

Caso você queira saber um pouco mais sobre as versões anteriores, acesse: https://blogs.technet.microsoft.com/dataplatforminsider/2018/02/15/the-february-release-of-sql-operations-studio-is-now-available/

Esta nova versão preview tem como foco melhorias no conjunto de extensões disponíveis para o produto, como também, continuar a abordar os problemas com maior destaque apresentados na plataforma github. Dentre algumas melhorias e correções o gerenciador de extensões e gerenciador do Dashboard foram os principais recursos aprimorados nesta release.

Outros destaques apresentados nesta release são:

  • Aprimoramento no modelo de extensibilidade de gerenciamento de Dashboard oferecerendo maior suporte a informações com guias e painéis de configuração;
  • Extensões de painel de visão para sp_whoisactive existentes no whoisactive.com e um exemplo de relatórios de servidor;
  • Extension Manager permite a aquisição simples de extensões oficiais ou de terceiros;
  • Nova APIs de extensibilidade adicionada para a conexão e gerenciamento de ObjectExplorer; e
  • Suporte a 10 idiomas.

Para maiores informações e acesso a lista completa de atualizações pode ser obtida acessando Release Notes.

Extension Manager

Um dos recursos mais importantes existente tanto no SQL Operations Studio e também no Visual Code, o Gerenciador de extensão facilita a descoberta e a aquisição de funcionalidades adicionais do SQL Operations Studio.

Agora neste nova versão este fantástico recurso acaba de passar por um processo de reformulação, tendo maior capacidade para gerenciar extensões oficiais como também aquelas disponibilizadas pela comunidade.

A Figura 2 ilustra a interface do Extension Manager a partir desta versão:
Figura 2 – SQL Operations Studio – Extension Manager.

Downloads

Dentre as possibilidades para download destaco as seguintes:

Plataforma Link
Windows Setup Installer https://go.microsoft.com/fwlink/?linkid=870837
Windows ZIP https://go.microsoft.com/fwlink/?linkid=870838
macOS ZIP https://go.microsoft.com/fwlink/?linkid=870839
Linux TAR.GZ https://go.microsoft.com/fwlink/?linkid=870840
Linux DEB https://go.microsoft.com/fwlink/?linkid=870842
Linux RPM https://go.microsoft.com/fwlink/?linkid=870841

Maiores informações sobre as novidades do SQL Operations Studio podemo ser obtidas acessando SQL Server Blog.


Fontes e Direitos Autorais: SQL Server Blog – 

Dica do Mês – Microsoft SQL Server 2017 – SQL Graph Databases


Muito bom dia…… Salve amantes de banco de dados.

Tudo bem? Este é mais um post da sessão Dica do Mês, sessão dedicada a compartilhar mensalmente dicas, novidades, curiosidades e demais informações relacionadas ao Microsoft SQL Server, Banco de Dados e Tecnologias de Banco de Dados.

No post de hoje, quero compartilhar com você uma das maiores novidades implementadas na última versão do Microsoft SQL Server, neste caso, a versão 2017 lançada oficialmente em outubro de 2017 e muito destacada aqui no meu blog em diversos posts.

Destacando um pouco sobre o post, quando se referimos a banco de dados, normalmente pensamos em uma estrutura organizada basicamente em tabelas, colunas, chaves primárias, chaves estrangeiras e relacionamentos. Mas a partir do Microsoft SQL Server 2017 temos uma nova possibilidade de elaborar uma estrutura de banco de dados saindo um pouco deste tradicional cenário conhecimento como modelo relacional e sim partindo para o chamado modelo grafos ou banco de dados em grafos. Talvez em algum momento você já deve ter ouvido falar um pouco sobre esta forma de modelagem.

Pois bem, neste nova versão o time de engenheiros do SQL Server adicionaram ao conjunto de novas funcionalidades (features) o SQL Graph Databases ou simplesmente Banco de Dados em Grafos, isso mesmo banco de dados no formato de grafos, parece ser algo muito diferente do que estamos acostumados a fazer, na verdade não é bem assim, e você vai poder conhecer um pouco mais sobre este recurso, suas características e curiosidades no decorrer deste post.

Esta curioso em saber um pouco mais sobre esta nova feature? Eu estou, e não vejo a hora de poder dividir com você um pouco do vasto conteúdo relacionado com este recurso. Então, vamos em frente, vou tentar mitigar a sua curiosidade e ao mesmo também satisfazer os meus objetivos. Sendo assim, seja bem vindo ao post – Dica do Mês – Microsoft SQL Server 2017 – SQL Graph Databases.

Você vai se surpreender com este novo recurso e suas possibilidades relacionadas com modelagem de banco de dados.


Introdução

O SQL Graph Database é uma nova forma de se estruturar um banco de dados criado no Microsoft SQL Server 2017, tendo como base um estrutura formada por uma coleção de tabelas de nó (Node Table) e  tabelas de borda (Edge Table).

Basicamente um nó representa uma entidade — por exemplo, uma pessoa ou uma organização e uma borda representa uma relação entre os dois nós que ele conecta. As tabelas de nó ou borda podem ser criadas em qualquer esquema em um banco de dados, mas todas pertencem a uma estrutura de grafos representada de forma lógica.

Os bancos de dados na estrutura de grafos são úteis quando o aplicativo tem relacionamentos complexos de muitos para muitos e precisamos analisar as relações complexas.

Algumas das características importantes de um bancos de dados na estrutura de grafos:

  • Bordas (edge) ou relacionamentos(node) são entidades de primeira classe em um banco de dados de grafos e podem ter atributos ou propriedades associadas a eles;
  • Uma única edge table pode unir flexivelmente vários nós em um banco de dados de grafos;
  • Demonstrar a relação de padrões e consultas de navegação de vários saltos facilmente; e
  • Demonstrar o encerramento transitivo de dados e as consultas polimórficas facilmente.

A Figura 1 abaixo apresenta a estrutura básico do SQL Graph Databases e seus principais componentes:

Architecture of SQL Server 2017 Graph Database
Figura 1 – Estrutura básica do SQL Graph Databases.

Analisando a Figura 1 apresentada acima, podemos dizer que um banco de dados na estrutura de grafos é um tipo de banco de dados cujo conceito é baseado em nós e bordas. Este novo tipo de bancos de dados, denominada de grafos, baseiam-se na teoria dos grafos (um grafo é um diagrama de pontos e linhas conectados aos pontos), respeitando a seguinte estrutura:

  1. Os nós representam dados ou entidade e bordas representam conexões entre nós; e
  2. As bordas são propriedades que podem estar relacionadas a nós, essa capacidade nos permite mostrar interações mais complexas e profundas entre os nossos dados.

Elementos básicos

A seguir destaco os elementos básicos que compõem a estrutura do SQL Graph Databases:

Node Table
Representa uma entidade em um esquema de grafos. Sempre que criamos uma tabela de nós, juntamente com as colunas definidas pelo usuário, uma coluna implícita $node _id é criada, o que identifica exclusivamente um determinado nó no banco de dados.

Os valores na coluna $node _id são gerados automaticamente e são uma combinação de object_id dessa tabela de nós e um valor bigint gerado internamente. No entanto, quando a coluna $node _id é selecionada, um valor calculado na forma de uma cadeia de caracteres JSON é exibido.
Além disso, $Node _id é uma coluna pseudo, que mapeia para um nome interno com String hex nele. Quando selecionamos $node _id da tabela, o nome da coluna aparecerá como $node _id_ hex_string.

É recomendável que os usuários criem uma restrição ou índice exclusivo na coluna $node _id no momento da criação da tabela de nós, mas se um não for criado, um índice padrão exclusivo não clusterizado será criado automaticamente.

Edge Table
Como mencionado anteriormente, uma tabela de borda(Edge Table) representa uma relação em um grafos. As bordas são sempre direcionadas e conectam dois nós.

Uma tabela de borda permite que os usuários modelem relacionamentos muitos-para-muitos no grafos, esta mesma tabela pode ou não ter quaisquer atributos definidos pelo usuário.

$Edge _id
A primeira coluna na tabela de borda representa $Edge _id que identifica exclusivamente uma aresta fornecida no banco de dados. O valor da coluna edge_id é gerado com a combinação de object_id da tabela de borda e um valor bigint gerado internamente.

No entanto, quando selecionamos a coluna $Edge _id, ela é exibida como a seqüência de caracteres JSON que é calculada a partir do valor da coluna.

$from _id
Coluna que armazena o $node _id do nó, de onde a borda é originada. Semelhante ao $Edge _id este é também um pseduo e pode ser usado como $from _id no entanto, o nome da coluna inclui Strings hex nele.

$to _id
Armazena o $node _id do nó, no qual a borda termina. Comportamento desta coluna em também como por $Edge _id e $from coluna _id.

Funções

Existem algumas funções adicionadas a linguagem Transact-SQL, que visam ajudar os usuários a extrair informações das colunas geradas. Abaixo estão as funções:

OBJECT_ID_FROM_NODE_ID: Função que permite extrair o object_id de um node_id. Precisamos passar node_id para esta função e ele retornará o object_id, também podemos obter o nome do objeto do object_id.

GRAPH_ID_FROM_NODE_ID: Função que permite extrair o GRAPH_ID de um node_id. Precisamos passar node_id para esta função e ele retornará o object_id.

NODE_ID_FROM_PARTS: Através desta função podemos construir um node_id de um object_id e um graph_id.

OBJECT_ID_FROM_EDGE_ID: Função utilizada para extrair um object_id de um EDGE_ID.

GRAPH_ID_FROM_EDGE_ID: Função utilizada para identificar um GRAPH_ID de EDGE_ID.

EDGE_ID_FROM_PARTS: Função que nos permite identificar o id utilizada entre as conexões de EDGE_ID de object_id e identidade.

Tabelas de Sistemas e Metadados

Sys.Tables – Novas colunas foram adicionadas ao sys.tables para identificar se uma tabela é um nó ou uma borda, conforme apresenta a Tabela 1 abaixo:

Column Name Data Type Description
is_node bit 1 = this is a node table
is_edge bit 1 = this is an edge table

Tabela 1 – Novas colunas adicionadas a system table sys.tables.

Sys.Columns – Novas colunas foram adicionadas ao sys.tables para indicar o tipo da coluna em tabelas de nó e borda, permitindo o relacionamento entre as systems tables sys.columns e sys.tables. A Tabela 2 abaixo apresenta a relação de novas colunas adicionadas a sys.columns:

Column Name Data Type Description
graph_type int Internal column with a set of values.

The values are between 1-8 for graph columns and NULL for others:

1 – GRAPH_ID
2 – GRAPH_ID_COMPUTED
3 – GRAPH_FROM_ID
4 – GRAPH_FROM_OBJ_ID
5 – GRAPH_FROM_ID_COMPUTED
6 – GRAPH_TO_ID
7 – GRAPH_TO_OBJ_ID
8 – GRAPH_TO_ID_COMPUTED

graph_type_desc nvarchar(60) internal column with a set of values

Tabela 2 – Novas colunas adicionadas a system table sys.columns.

Nossa, quanta coisa nova foi adicionado ao Microsoft SQL Server a partir desta nova funcionalidades, como também, diversas mudanças internadas como de costume também foram realizadas no produto afim de possibilitar o uso destas e outras funcionalidades, algo comumente realizado a cada nova versão.

Vamos então conhecer de forma prática o SQL Graph Databases e entender como estes elementos podem ser utilizados através do cenário que estaremos implementando a partir de agora.

Implementando o SQL Graph Databases

Se estamos nos referindo ao um banco de dados de grafos, nada melhor do que representar a estrutura que será utilizada em nosso cenário de exemplo através de um Diagrama conforme ilustra a Figura 2 abaixo:

Figura 2 – Diagrama – Estrutura utilizada para o exemplo.

Os nós são SQL Server, Azure e Windows e segue (bordas) fornecem conexões entre nós. Este modelo de banco de dados não pode ser tratado como uma alternativa a um modelo de banco de dados relacional, mas confrontados com alguns problemas específicos, o modelo de banco de dados em grafos pode ser alternativo e efetivo.

Observações: Se você olhar para o diagrama de perto, talvez você pode projetar este modelo de dados em um banco de dados relacional por junções, mas imagine que se você tiver um monte de nós e bordas, em seguida, quantas junções você vai precisar? Outra consideração importante se relaciona na forma de como este projeto funcionaria? Por esta razão, ao lidar com alguns problemas de negócios, precisamos de um banco de dados representado na teoria de grafos.

Um cenário muito interessante para a adoção de um banco de dados em grafos a ser considerado são meios de comunicação social. Por exemplo, há um monte de ações sociais, cada ação social cria uma marca. Quando combinamos estas marcas, parece uma teia de aranha. O modelo de banco de dados em grafos é ideal para armazenar esse tipo de dados.

Criando o ambiente

Para nossa prática vamos trabalhar com o seguinte ambiente:

  • Database – SQLGraphDatabase;
  • Node Table – Products; e
  • Edge Table – Microsoft.

Vamos começar criando nosso banco de dados e a node table através do Bloco de Código 1 apresentado na sequência:

— Bloco de Código 1 – Criando Banco de Dados e Node Table —

— Criando o Banco de Dados —
Create Database SQLGraphDatabases
Go

— Acessando o Banco de Dados —
Use SQLGraphDatabases
Go

— Criando a Node Table Products —
Create Table Products
(ProductID TinyInt Primary Key,
ProductName Varchar(100)
) As Node
Go

Note que instrução Create Table especificamos ao final da mesma a palavra chave Node, desta forma, o Microsoft SQL Server vai entender que nossa tabela será um nó e posteriormente estará relacionada com no mínimo uma borda.

O próximo passo é realizar a inserção de dados na tabela Products, para isso vamos utilizar o Bloco de Código 2 apresentado a seguir:

— Bloco de Código 2 – Inserindo dados na Node Table Products —

— Inserindo dados na Node Table Products —
Insert Into Products
Values (1,’SQL Server’),
(2,’Azure’),
(3,’Windows’)
Go

— Consultando os dados —
Select ProductId, ProductName from Products
Go

Você poderá notar que após a execução do comando Select teremos o resultado das três linhas de registros lógicos adicionadas a node table Products apresentados em tela, para que seja possível apresentar toda estrutura da tabela incluindo o $Node_Id, vamos então utilizar um simples e conhecido Select * (técnica não recomendável, mas para este cenário será útil para apresentar de maneira rápida a estrutura da node table Products).

— Apresentando toda estrutura da node table Products e seus respectivos dados —

Select * From Products
Go

A Figura 3 abaixo ilustra o retorno dos dados obtidos após a execução do Select acima:

Figura 3 – Estrutura da node table Products, incluindo $Node_ID e dados.

Continuando a nossa caminhada, vamos agora criar nossa tabela borda (edge table) denominada Microsoft, sendo esta o elemento utilizado para estabelecer as ligações entre os dados da node table para com a edge table, desta forma utilizaremos o Bloco de Código 3 apresentado a seguir:

— Bloco de Código 3 – Criando a Edge Table Microsoft —

— Criando a Edge Table Microsoft —
Create Table Microsoft As Edge
Go

— Consultando a estrutura da Edge Table Microsoft —
Select * from Microsoft
Go

Pronto nossa tabela borda esta criada, nosso penúltimo passo será adicionar os dados oriundos da node table Products, estabelecem assim as relações entre ambos os elementos, para tal procedimentos utilizaremos o Bloco de Código 4 apresentado a seguir:

— Bloco de Código 4 – Inserindo os dados na Edge Table Microsoft —

— Azure com SQL Server —
Insert Into Microsoft ($from_id , $to_id )
Values ((Select $node_id from Products where ProductId=2),
(Select $node_id from Products where ProductId=1))
Go

— Windows com SQL Server —
Insert Into Microsoft ($from_id ,$to_id )
Values ((Select $node_id from Products where ProductId=3),
(Select $node_id from Products where ProductId=1))
Go

— Windows com Azure —
Insert Into Microsoft ($from_id ,$to_id )
Values ((Select $node_id from Products where ProductId=3),
(Select $node_id from Products where ProductId=2))
Go

— Consultando os dados inseridos na Edge Table Microsoft —
Select * from Microsoft
Go

Muito bom, acabamos de estabelecer as ligações entre nossa node table e a edge table, note que para realizar este vinculo entre os dados oriundas da node table Products para a edge table Microsoft, utilizamos os valores da coluna ProductID existente na tabela de Products, como elemente chave a ser inserido nas colunas $from_id e $to_id no momento da criação da edge table Microsoft.

Figura 4 a seguir ilustra os dados inseridos na edge table Microsoft e apresentados no formato de string JSON:

Figura 4 – Dados inseridos na edge Table Microsoft.

Agora falta muito pouco e chegamos ao último passo que consiste justamente em identificar as conexões estabelecidas com base no Bloco de Código 4 processado anteriormente, onde através da nova função Match() em conjunto com seus operadores ‘-‘ ou ‘->’ podemos definir o caminho para encontrar os dados respeitando a estrutura de nós e bordas. Para tal procedimento executaremos o Bloco de Código 5 apresentado abaixo:

— Bloco de Código 5 – Identificando as conexões entre os dados —

— Utilizando a função Match(), encontrando as conexões do ProductName = Azure —
Select Concat(Products.ProductName,’ –> ‘, ProductsDetails.ProductName) As Connections
From Products, Microsoft, Products ProductsDetails
Where Match(Products-(Microsoft)->ProductsDetails)
And Products.ProductName = ‘Azure’
Go

— Utilizando a função Match(), encontrando as conexões do ProductName = Windows —
Select Concat(Products.ProductName,’ –> ‘, ProductsDetails.ProductName) As Connections
From Products, Microsoft, Products ProductsDetails
Where Match(Products-(Microsoft)->ProductsDetails)
And Products.ProductName = ‘Windows’
Go

Após a execução do Bloco de Código 5 apresentado anteriormente o Management Studio deverá retornar um resultado similar ao apresentado pela Figura 5 abaixo:

Figura 5 – Conexões de dados estabelecidas com base nas colunas $from_id  e $to_id.

Incrível, chegamos ao final de mais um post da sessão Dica do Mês, tenho a certeza que você gostou do conteúdo apresentado hoje neste post.

Vale ressaltar que alguns pontos não foram abordados neste post, dentre eles como utilizar um índice clusterizado ou não clusterizado, como também, a maneira que uma Node Table e Edge Table são apresentadas na estrutura de um banco de dados através do Management Studio.

No que diz respeito ao novo modelo de banco de dados, tenha a certeza que a minha missão foi cumprida, principalmente no entendimento de como esta uma nova forma de representação baseada em grafos poderá nos ajudar a estabelecer uma nova técnica de relacionamento entre nossas tabelas e seus respectivos dados, indo muito além dos tradicionais conceitos dentre eles: chaves primárias e estrangeiras, caminhando para uma nova proposta com base no conceito de relacionamento lógico de dados.

Antes de encerrarmos, gostaria de contar com a sua participação neste post, respondendo a enquete abaixo:


Referências

https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-sample

https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-architecture

https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-overview

https://www.red-gate.com/simple-talk/sql/sql-development/sql-server-graph-databases-part-1-introduction/

https://www.sqlshack.com/implement-graph-database-sql-server-2017/

https://www.mssqltips.com/sqlservertip/4883/sql-server-2017-graph-database-example/

 

Posts Anteriores

https://pedrogalvaojunior.wordpress.com/2018/01/24/dicadomes-sqlservertoolsuiteintroduction/

https://pedrogalvaojunior.wordpress.com/2017/11/01/dicadomessql2017novascolunasinternas/

https://pedrogalvaojunior.wordpress.com/2017/08/26/dica-do-mes-simulando-a-insercao-de-uma-massa-de-dados-aleatoria/

https://pedrogalvaojunior.wordpress.com/2017/05/23/conhecendo-e-aplicando-o-uso-de-atualizacao-de-estatisticas-incrementais/

Conclusão

Neste post, conhecemos um pouco sobre este novo recursos SQL Graph Databases implementado a partir da versão 2017 do Microsoft SQL Server.

O SQL Server Graph é um recurso fantástico que nos permite implementar dentro da mesma estrutura de banco de dados existente no Microsoft SQL Server dois modelos de relacionamento de dados totalmente diferentes.  Através desta arquitetura híbrida temos a capacidade de utilizar recursos do mecanismo do SQL Server com um banco de dados na estrutura de grafos de maneira muito similar para não se dizer parecida com os recursos aplicados no modelo relacional, com base, na linguagem Transact-SQL nos dando todo suporte a consultas para este novo formato.

O banco de dados baseados na estrutura de grafos (SQL Graph Databases) apresentam como toda nova tecnologia algumas limitações técnicas neste momento, que tendem nas próximas versões do produto evoluírem ou até mesmo deixar de existir, algo que neste momento não podem ser consideradas limitações que impossibilitem a sua adoção ou uso em novos projetos de bancos de dados, como também, não se tornem  limitações a outros recursos excepcionais no existentes no Microsoft SQL Server 2017, mesmo assim podemos reconhecer que este novo modelo de banco de dados, pode ser considerada uma tecnologia convincente e promissora.

Agradecimentos

Agradeço a você por sua atenção e visita ao meu blog. Fique a vontade para enviar suas críticas, sugestões, observações e comentários.

Um forte abraço, nos encontramos no próximo post a ser publicado no mês de abril.

Viva o Microsoft SQL Server 2017 e suas novas funcionalidades…

Um forte abraço, sucesso e até o próximo post.

Short Scripts – Fevereiro 2018 – Transaction Log


Olá, bom dia, mais uma semana começando….

E você já esta aqui acessando o meu blog, que alegria poder te encontrar em mais um post da sessão Short Scripts, uma das sessões mais recentes do meu blog que esta alçando a marca de 32 posts, sendo estes publicados trimestralmente.

Mantendo a tradição estou retornando com mais um conjunto de “pequenos” scripts catalogados e armazenados em minha biblioteca pessoal de códigos relacionados ao Microsoft SQL Server e sua fantástica linguagem de desenvolvimento Transact-SQL.

Mas como este é o primeiro post desta sessão em 2018, farei algo um pouco diferente, você terá uma pequena surpresa.

Desejo que o conteúdo aqui compartilhado possa lhe ser útil, como também sirvo de referência e sugestões para novas formar de resolução de problemas e aprendizado.

Vamos então conhecer um pouco mais sobre este novo post….

O post de hoje

Como já destacado no início do post, ao invés de compartilhar os últimos scripts adicionados a  minha biblioteca, quero dividir com você um conteúdo dedicado especificamente a um assunto muito importante quando nos referimos ao Microsoft SQL Server, mais especificamente ao Transaction Log (Log de Transações), funcionalidade presente em todos os bancos de dados criados em qualquer versão e edição do SQL Server.

E ai que você achou desta surpresa, gostou? Eu gostei, não é fácil você conseguir encontrar em um único local um conteúdo focado exclusivamente a este assunto tão importante, que muitos profissionais que trabalham com banco de dados até hoje não conseguem entender o conceito e forma de atuação do Transaction-Log.

Seguindo em frente, a seguir apresento os códigos e exemplos selecionados para o Short Script – Fevereiro 2018 – Transaction Log. Vale ressaltar que todos os scripts publicados nesta sessão foram devidamente testados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, vale sim todo cuidado possível para evitar maiores problemas.

Short Scripts

Fique a vontade para compartilhar, comentar e melhorar cada um destes códigos:

— Short Script 1 – Log Record —

— Altera o Recovery Model para SIMPLE
ALTER DATABASE AdventureWorks2016
SET RECOVERY SIMPLE
Go

— Truncar o Transaction Log —
CHECKPOINT
Go

— Conteúdo do log – todas as colunas —
USE AdventureWorks2016
Select * from ::fn_dblog(null, null)
Go

–update
Begin Transaction

UPDATE dbo.Pessoa
SET nome = ‘XUXA’
Where ID=3

Rollback
Go

— Conteúdo armazenado no Log File —
Select [Current LSN],
Operation,
Context,
[Transaction ID],
[Log Record Length],
[Previous LSN],
AllocUnitName,
[Page ID],
[Slot ID],
[Checkpoint Begin],
[Checkpoint End],
[Minimum LSN],
SPID,
[Begin Time],
[Transaction Name],
[Parent Transaction ID],
[Lock Information],
Description,
[RowLog Contents 0],
[RowLog Contents 1],
[Log Record]
From ::fn_dblog(null, null)
Go

— DBCC SQLPERF —
DBCC SQLPERF(LOGSPACE)
Go

— Short Script 2 – CheckPoint —

— Criando a Base de Dados —
CREATE DATABASE DemoCheckpoint
ON PRIMARY
(NAME = ‘DemoCheckpoint_data’,
FILENAME = ‘D:\MSSQL\DemoCheckpoint_data.mdf’)
LOG ON
(Name = ‘DemoCheckpoint_Log’,
FILENAME = ‘D:\MSSQL\DemoCheckpoint_log.ldf’,
SIZE = 100MB,
FILEGROWTH = 10MB)
GO

— Alterando o Recovery Model —
ALTER DATABASE DemoCheckpoint
SET RECOVERY SIMPLE
Go

— Criando a Tabela Teste —
USE DemoCheckpoint
GO

CREATE TABLE Teste
(C1 varchar(50) NOT NULL,
C2 varchar(50) NOT NULL)
GO

— Forçando o Checkpoint —
CHECKPOINT
Go

— Abrir o Perfmon com os contadores

— em outra sessão
USE DemoCheckpoint
GO

WHILE 1=1
BEGIN

INSERT INTO dbo.teste
VALUES (‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’)
END

— Short Script 3 – Log Chain Simple —

— Iniciar nova sessão do Perfmon —
SELECT name, recovery_model_desc
FROM sys.databases
WHERE name = ‘AdventureWorks2016’
Go

— Alterar Recovery Model para Simple —
ALTER DATABASE AdventureWorks2016
SET RECOVERY SIMPLE
Go

— Abrir nova Query —
USE AdventureWorks2016
Go

WHILE 1=1
BEGIN
INSERT INTO dbo.pessoa
VALUES (‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’)
END

— Alterar Recovery Model para Full —
ALTER DATABASE AdventureWorks2016
SET RECOVERY FULL
GO

— Realizar Backup Database —
BACKUP DATABASE AdventureWorks2016
TO DISK = ‘d:\backupcompress.bak’
WITH COMPRESSION,
DIFFERENTIAL
GO

— Short Script 4 – DBCC LogInfo —

— Criando uma nova base de dados —
CREATE DATABASE TestDB
ON PRIMARY
(NAME = ‘TestDB_data’,
FILENAME = ‘D:\MSSQL\TestDB_data.mdf’)
LOG ON
(Name = ‘TestDB_Log’,
FILENAME = ‘D:\MSSQL\TestDB_log.ldf’,
SIZE = 10MB,
FILEGROWTH = 10MB)
GO

— Obtendo informações sobre a base de dados —
DBCC LOGINFO(TestDB)
Go

–Forçando o crescimento do Transact-Log manualmente em 20MB —
ALTER DATABASE TestDB
MODIFY FILE
(NAME = ‘TestDB_Log’,
SIZE = 20MB);
GO

— Obtendo informações sobre a base de dados —
DBCC LOGINFO(TestDB)
Go

— Short Script 5 – Natureza Circular —

— Alterando Recovery Model FULL —
ALTER DATABASE TestDB
SET RECOVERY FULL;
Go

— Realizando Backup Database —
BACKUP DATABASE TestDB
TO DISK = ‘D:\TestDB.bak’
Go

— Forçando o encolhimento do Transaction – Log —
DBCC LOGINFO(TestDB)
Go

BACKUP LOG TestDB
TO DISK = ‘bkplogTestDB.trn’
Go

USE TestDB
Go

DBCC SHRINKFILE (TestDB_Log,1)
Go

DBCC LOGINFO(TestDB)
Go

— Criando uma nova Tabela —
USE TestDB
GO

CREATE TABLE dbo.pessoa
(ID int identity PRIMARY KEY NOT NULL,
Nome varchar(50) NOT NULL,
Sobrenome varchar(50) NOT NULL,
Nascimento date NOT NULL,
Cargo varchar(50))
GO

— Abrir nova query —
USE TestDB
GO

WHILE 1=1
BEGIN
INSERT INTO dbo.pessoa
VALUES (‘Junior’, ‘Galvão’, ‘19800428’, ‘Database Administrator’)
END

— Monitorar o crescimento do log em tempo de execução —
DBCC LOGINFO(TestDB)

CHECKPOINT

SELECT name,
Log_reuse_wait_desc
FROM sys.databases
WHERE name = ‘TestDB’
Go

— Realizar Backup do Arquivo de Log —
BACKUP LOG TestDB TO DISK = ‘d:\log.trn’
Go

— Alterando Recovery Model para Full
ALTER DATABASE AdventureWorks2016
SET RECOVERY FULL
Go

— Realizando novo Backup Database —
BACKUP DATABASE AdventureWorks2016
TO DISK = ‘d:\backup.bak’
WITH COMPRESSION
Go

— Short Script 6 – Backup and Transaction Log —

— Preparando a base – 1m10s se não preparada na demo 5
ALTER DATABASE AdventureWorks2016 SET RECOVERY FULL
GO
BACKUP DATABASE AdventureWorks2016 TO DISK = ‘d:\backup.bak’ WITH COMPRESSION
GO

— Realizando Backup do Arquivo de Log —
BACKUP LOG AdventureWorks2016
TO DISK = ‘bkplog.trn’
Go

— Obtendo informações sobre o Log —
DBCC LOGINFO(AdventureWorks2016)
Go

— Encolhendo o Transaction Log —
USE AdventureWorks2016
Go

DBCC SHRINKFILE (AdventureWorks2016_Log,1)
Go

— Obtendo informações sobre o Log —
DBCC LOGINFO(AdventureWorks2016)
Go

— Ajustando o tamanho do Transaction Log —
USE AdventureWorks2016
Go

— Encolhendo o Transaction Log —
DBCC SHRINKFILE (AdventureWorks2016_Log,1)
Go

— Obtendo informações sobre o Log —
DBCC LOGINFO(AdventureWorks2016)
Go

— Modificando o arquivo de Log —
ALTER DATABASE AdventureWorks2016
MODIFY FILE
(NAME = AdventureWorks2016_Log,
SIZE = 4MB)
Go

— Encolhendo o Transaction Log —
DBCC LOGINFO(AdventureWorks2016)

— Abrir nova query —
BACKUP DATABASE AdventureWorks2016
TO DISK = ‘d:\backup.bak’
Go

— Abrir nova query —
USE AdventureWorks2016
GO

WHILE 1=1
BEGIN
INSERT INTO dbo.pessoa
VALUES (‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’),
(‘bbbbbbbbbbbbbbbbbbbb’, ‘bbbbbbbbbbbbbbb’)
END
Go

— Forçando o Truncate do Log —
BACKUP LOG AdventureWorks2016
TO DISK = ‘bkplog.trn’
Go

— Obtedo informações do arquivo de log —
DBCC LOGINFO(AdventureWorks2016)
CHECKPOINT
SELECT name,
log_reuse_wait_desc
FROM sys.databases
WHERE name = ‘AdventureWorks2016’
Go

— Ajustando o tamanho do TLog
USE AdventureWorks2016
GO

DBCC SHRINKFILE (AdventureWorks2016_Log,1)
GO

DBCC LOGINFO(AdventureWorks2016)
Go

— Short Script 7 – File Growth —

— Habilitando Trace Flags para evidênciar mudanças no Log —
DBCC TRACEON (3004, 3605, -1);
Go

— Limpar o log do SQL Server —
sp_cycle_errorlog
Go

— Criar uma nova Base de Dados —
CREATE DATABASE TransactionLog
ON PRIMARY
(NAME = ‘TransactionLog_data’,
FILENAME = ‘D:\MSSQLSERVER\DATA\TransactionLog_data.mdf’,
SIZE = 10240MB)
LOG ON
(Name = ‘TransactionLog_Log’,
FILENAME = ‘D:\MSSQLSERVER\DATA\TransactionLog_log.ldf’,
SIZE = 1024MB,
FILEGROWTH = 1024MB)
GO

— Identificar o tempo decorrido para processamento relacionado somente ao Log —
xp_readerrorlog
Go

— Desabilitando Trace Flags —
DBCC TRACEOFF (3004, 3605, -1);
Go

— Short Script 8 – Open Transaction in Tracking —

— Identificando as Transações abertas e seu respectivo consumo do Transaction Log —
SELECT
[s_tst].[session_id],
[s_es].[login_name] AS [Login Name],
DB_NAME (s_tdt.database_id) AS [Database],
[s_tdt].[database_transaction_begin_time] AS [Begin Time],
[s_tdt].[database_transaction_log_bytes_used] AS [Log Bytes],
[s_tdt].[database_transaction_log_bytes_reserved] AS [Log Rsvd],
[s_est].text AS [Last T-SQL Text],
[s_eqp].[query_plan] AS [Last Plan]
FROM sys.dm_tran_database_transactions [s_tdt] Inner JOIN sys.dm_tran_session_transactions [s_tst]
ON [s_tst].[transaction_id] = [s_tdt].[transaction_id]
Inner JOIN sys.[dm_exec_sessions] [s_es]
ON [s_es].[session_id] = [s_tst].[session_id]
Inner JOIN sys.dm_exec_connections [s_ec]
ON [s_ec].[session_id] = [s_tst].[session_id]
LEFT OUTER JOIN sys.dm_exec_requests [s_er]
ON [s_er].[session_id] = [s_tst].[session_id]
CROSS APPLY sys.dm_exec_sql_text ([s_ec].[most_recent_sql_handle]) AS [s_est]
OUTER APPLY sys.dm_exec_query_plan ([s_er].[plan_handle]) AS [s_eqp]
ORDER BY [Begin Time] ASC;
Go

É isso ai, missão cumprida! Mais uma relação de short scripts acaba de ser compartilhada, mesmo sendo denominados short entre aspas “pequenos”, posso garantir que todos estes exemplos são de grande importância, apresentam um valor e conhecimento do mais alto nível.

Quero agradecer ao amigo Luiz Mercante que colaborou com a criação e uso destes scripts em algumas palestras realizadas nos últimos anos no evento SQL Saturday.


Chegamos ao final de mais um Short Scripts, espero que este material possa lhe ajudar, ilustrando o uso de alguns recursos e funcionalidades do Microsoft SQL Server.

Acredito que você tenha observado que estes códigos são conhecidos em meu blog, todos estão relacionados aos posts dedicados ao Microsoft SQL Server publicados no decorrer dos últimos anos.

Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso.

Links

Caso você queira acessar os últimos posts desta sessão, não perca tempo acesse os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2017/12/09/short-scripts-dezembro-2017/

https://pedrogalvaojunior.wordpress.com/2017/09/16/short-scripts-setembro-2017/

https://pedrogalvaojunior.wordpress.com/2017/06/08/short-scripts-junho-2017/

https://pedrogalvaojunior.wordpress.com/2017/03/31/short-scripts-marco-2017/

Agradecimento

Obrigado mais uma vez por sua visita, fico honrado com sua ilustre presença ao meu blog, desejo e espero que você possa ter encontrado algo que lhe ajudou.

Volte sempre, nos encontraremos mais uma vez na sessão Short Scripts no post do mês de maio de 2018.

Sucesso….

Microsoft adquire PlayFab, fornecedora de serviços de backend para jogos em na nuvem


No final do mês de janeiro a Microsoft realizou a compra e aquisição da empresa PlayFab,  fornecedora de plataforma de serviços backend para construir, desenvolver e lançar jogos conectados à nuvem, conforme anúncio feito por Kareem Choudhry.

Como Satya Nadella, nosso CEO, observou na reunião anual de acionistas: “Estamos nos mobilizando para seguir nossa ampla oportunidade em um mercado de mais de 100 bilhões de jogos. Isso significa ampliar nossa abordagem sobre como pensamos os jogos de ponta a ponta, como começá-los e a maneira que estão sendo criados e distribuídos, e como são jogados e visualizados.”

Mais de 1 bilhão de pessoas jogam videogame, alimentando uma indústria próspera cujo ecossistema está evoluindo e crescendo rapidamente. Muitos setores estão mudando para a nuvem inteligente, e essa tendência é verdadeira também na área de jogos. Isso significa que um número crescente de desenvolvedores procura criar jogos conectados para dispositivos móveis, PCs e consoles, que tenham ênfase nas operações pós-lançamento. No entanto, o custo e a complexidade de alcançar esse resultado por meio de ferramentas e tecnologias personalizadas do servidor são altas, e a PlayFab oferece aos desenvolvedores um modelo atraente que varia naturalmente com os jogadores de seus games.

Os serviços de backend da PlayFab reduzem as barreiras do lançamento para os desenvolvedores de jogos, oferecendo soluções de desenvolvimento com bom custo-benefício para estúdios grandes e pequenos, que escalam seus jogos e os ajudam a engajar, reter e rentabilizar os jogadores. A PlayFab permite que os desenvolvedores usem a nuvem inteligente para criar e operar jogos, analisar dados e melhorar as experiências gerais dos títulos.

A plataforma PlayFab é um complemento natural do Azure para jogos (Visite azure.com/gaming para mais informações). O Azure, disponível localmente em 42 regiões em todo o mundo, fornece infraestrutura de servidores de primeira linha, permitindo que os criadores se concentrem na construção de ótimos jogos com alcance global. Para os jogadores, isso leva a um grau de inovação mais alto e rápido, além de melhores experiências.

Incorporar a experiência da PlayFab, a crescente rede de desenvolvedores de jogos e a poderosa plataforma de jogo como serviço em nossa oferta de produtos é um passo importante para os jogos na Microsoft. A PlayFab atendeu mais de 700 milhões de jogadores e atualmente abriga mais de 1.200 jogos de empresas como Disney, Rovio e Atari. Sua plataforma de jogos inclui alguns dos títulos mais proeminentes do setor, como “Idle Miner Tycoon”, “Angry Birds: Seasons” e “Roller Coaster Tycoon Touch”.

Juntos, o Azure e a PlayFab vão liberar ainda mais o poder da nuvem inteligente para o setor de jogos, permitindo que os desenvolvedores e gamers apreciem em todo o mundo.”

As ferramentas da PlayFab são projetadas para ser usadas por desenvolvedores de jogos em todas as plataformas (móveis, PC e console). Essa aquisição amplia os investimentos e o trabalho que fizemos no Microsoft Azure para fornecer uma plataforma de nuvem de primeira linha para o setor de jogos.

Microsoft anuncia a compra da PlayFabPara mais informações sobre a PlayFab, acesse um post no blog de James Gwertzman, CEO e co-fundador.

Fontes e Direitos Autorais: