#23 – Para que serve


Olá, bom dia, tudo bem? E ai preparado para festividades de final de Ano?

Seja bem-vindo a mais um post da sessão Para que Serve, sendo este o de número 23, mais um dia de muito começando, repleto de atividades e compromissos, ainda mais hoje sexta – feira e muito próximo ao Natal.

Mesmo no ritmo de fim de ano, tenho mantido a minha rotina, acordar bem cedo, para poder aproveitar da melhor maneira possível meu precioso tempo livre, colocando em prática algo que adoro fazer, publicar um post novo em meu blog mantendo a tradição de querer renovar e compartilhar as experiências e aprendizados adquiridos em minhas atividades profissionais e acadêmicas.

No post de hoje, vou compartilhar com você que esta acessando meu blog, uma nova opção adicionada diretamente aos bancos de dados que criamos a partir do Microsoft SQL Server 2016 que nos permite que seja utilizada de forma exclusiva no nível de banco de dados ao invés de aplicar diretamente no nível de instância.

Talvez você já possa ter utilizada esta nova opção, mas tenho a certeza que muitos dos profissionais que ainda não migraram seus ambientes para versões mais novas talvez não a conheçam, estou me referindo a opção AUTOGROW_ALL_FILES, que basicamente define no nível de banco de dados (Database Level) ao contrário do que acontecia nas versões anteriores que tínhamos a necessidade de ativar a Trace Flag T1117 que aplicava esta alteração de comportamento padrão no nível de instância (Server Level).

No decorrer deste post será realizado um pequeno comparativo entre as opções AUTOGROW_ALL_FILES e AUTOGROW_SINGLE_FILE, analisando seus comportamentos padrões, tendo como base um simples bloco de código inserindo 500.000 (Quinhentas mil linhas de registros lógicos) com dados fixos.

Adianto que esta análise comparativa em nenhum momento leva em consideração características de Hardware, versão de Sistema Operacional ou uso de uma aplicação específica. Na verdade o objetivo desta simples análise é elucidar que o uso destas  opções podem influenciar na maneira que o Microsoft SQL Server utiliza um ou mais arquivos de dados de forma proporcional ou simultânea.

Sendo assim, chegou a hora de conhecer um pouco mais sobre o post de número 23 da sessão Para que serve. Mas uma vez, bem vindo ao #23 – Para que serve – Opções de Bancos de Dados – AUTOGROW_ALL_FILES versus AUTOGROW_SINGLE_FILE.

Espero que você esta animado para conhecer um pouco mais sobre esta propriedade, caso já conheça, continue lendo este post, sempre podemos aprender algo novo….


Introdução

Todo o banco de dados SQL Server tem, no mínimo, dois arquivos de sistema operacional: um arquivo de dados e um arquivo de log. Os arquivos de dados contêm dados e objetos como tabelas, índices, procedimentos armazenados e exibições.

Os arquivos de log contêm as informações necessárias para recuperar todas as transações no banco de dados, ao contrário dos arquivos de dados que podem ser agrupados em grupos de arquivos para propósitos de alocação e administração.

Os bancos de dados SQL Server possuem três tipos de arquivos, como mostrado na Tabela 1 a seguir:

Arquivo  Descrição 
Primário O arquivo de dados primário contém as informações de inicialização do banco de dados e aponta para os outros arquivos no banco de dados.
Dados do usuário e objetos podem ser armazenados neste arquivo ou em arquivos de dados secundários. Todo banco de dados possui um arquivo de dados primário. A extensão de nome de arquivo indicada para arquivos de dados primários é .mdf.
Secundário Os arquivos de dados secundários são opcionais, definidos pelo usuário, e armazenam dados do usuário.
Arquivos secundários podem ser usados para distribuir os dados entre os diversos discos, colocando cada arquivo em uma unidade de disco diferente. Além disso, caso um banco de dados exceda o tamanho máximo em um único arquivo Windows, será possível usar arquivos de dados secundários, assim, o banco de dados continuará a crescer.
A extensão de nome de arquivo indicada para arquivos de dados secundários é .ndf.
Log de transações Os arquivos de log de transações armazenam as informações de log usadas para recuperar o banco de dados. Deve haver, no mínimo, um arquivo de log para cada banco de dados.
A extensão de nome de arquivo indicada para arquivos de transação é .ldf.

Tabela 1 – Tipos de Arquivos que formam um banco de dados criado no Microsoft SQL Server.

Agora que já conhecemos os tipos de arquivos que podem compor um banco de dados, vamos conhecer um pouco sobre um outro importante recurso que esta diretamente relacionado a este post, os denominados Filegroups.

Filegroups

Quando objetos são criados no banco de dados sem especificar a qual grupo de arquivos eles pertencem, os objetos são atribuídos ao grupo de arquivos padrão. A qualquer hora, um grupo de arquivos é designado como o grupo de arquivos padrão.

Os arquivos no grupo de arquivos padrão devem ser grandes o suficientes para armazenar qualquer objeto novo alocado a outros grupos de arquivo.

O grupo de arquivos PRIMÁRIO é o grupo de arquivos padrão, a menos que seja alterado usando a instrução ALTER DATABASE. A alocação para os objetos de sistema e de tabelas permanece no grupo de arquivos PRIMÁRIO, e não no novo grupo de arquivos padrão. O SQL Server mapeia um banco de dados de um conjunto de arquivos do sistema operacional.

As informações de log e dados nunca ficam misturadas no mesmo arquivo, e os arquivos individuais são usados apenas por um banco de dados, os grupos de arquivos são conhecidos como coleções de arquivos e são usados para simplificar o posicionamento de dados e em tarefas administrativas, como operações de backup e restauração.

Crescimento de Arquivos de Dados

Ao criar um banco de dados, estamos estabelecendo o uso de uma ou mais áreas em disco rígido para alocar nossos arquivos de dados. Dentre as diversas opções e propriedades que podemos configurar no momento da criação de um novo banco de dados ou em sua alteração, nos deparamos com a propriedade FileGrowth, sendo esta responsável em estabelecer a forma ou método de crescimento que toda estrutura de arquivos de dados que formam nossos bancos deverá aplicar, escolhendo a método de rodízio (Round-Robin) na qual os arquivos vão sendo preenchidos de forma aleatória de acordo com a necessidade ou através do método Preenchimento Proporcional (Proportional Fill).

Chegou a hora de colocar a mão nos teclados, como de costume teremos um ambiente de testes a ser criado, o que será utilizado como cenário de estudos.

Criando o Ambiente

Em meu ambiente de estudos estou utilizando o Microsoft SQL Server 2017 Enterprise Edition – Cumulative Update 9 e Sistema Operacional Windows 10, fique a vontade para utilizar o melhor cenário possível dentro das suas necessidades, a partir da versão 2016 do Microsoft SQL Server.

Para realizar nossa simples prática, começaremos pela execução do Bloco de Código 1, responsável por criar a seguinte estrutura:

  • Databases: TesteDatabaseAUTOGROWSINGLEFILE; e TesteDatabaseAUTOGROWALLFILES;
  • Tables: TabelaGrowSingleFile; e TabelaGrowAllFile.

Importante: Destaco que os caminhos informados para criação dos referidos bancos e seus arquivos, estão apresentados de acordo com a configuração do meu ambiente, fique a vontade para alterar de acordo com suas necessidades e configurações.

— Bloco de Código 1 —
— Criando os respectivos bancos de dados  —

— Criando o Banco de Dados TesteDatabaseAUTOGROWSINGLEFILE —
Create Database TesteDatabaseAUTOGROWSINGLEFILE
On Primary
(Name= ‘TesteDatabaseAUTOGROWSINGLEFILE_Data’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWSINGLEFILE_Data.mdf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB),
(Name= ‘TesteDatabaseAUTOGROWSINGLEFILE_Data1’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWSINGLEFILE_Data1.ndf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB),
(Name= ‘TesteDatabaseAUTOGROWSINGLEFILE_Data2’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWSINGLEFILE_Data2.ndf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB)
Log On
(Name= ‘TesteDatabaseAUTOGROWSINGLEFILE_Log’,
FileName= ‘S:\MSSQL-2017\Log\TesteDatabaseAUTOGROWSINGLEFILE_Log.Ldf’,
Size=20 MB,
MaxSize=8192 MB,
FileGrowth=200 MB)
Go

— Criando o Banco de Dados TesteDatabaseAUTOGROWALLFILES —
Create Database TesteDatabaseAUTOGROWALLFILES
On Primary
(Name= ‘TesteDatabaseAUTOGROWALLFILES_Data’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWALLFILES_Data.mdf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB),
(Name= ‘TesteDatabaseAUTOGROWALLFILES_Data1’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWALLFILES_Data1.ndf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB),
(Name= ‘TesteDatabaseAUTOGROWALLFILES_Data2’,
FileName= ‘S:\MSSQL-2017\Data\TesteDatabaseAUTOGROWALLFILES_Data2.ndf’,
Size=10 MB,
MaxSize=4096 MB,
FileGrowth=100 MB)
Log On
(Name= ‘TesteDatabaseAUTOGROWALLFILES_Log’,
FileName= ‘S:\MSSQL-2017\Log\TesteDatabaseAUTOGROWALLFILE_Log.Ldf’,
Size=20 MB,
MaxSize=8192 MB,
FileGrowth=200 MB)
Go

Nota: Vale ressaltar que ambos os bancos de dados estão estruturados com a mesma quantidade de arquivos de dados e log, respectivamente 3(três) arquivos de dados e somente um único arquivo de log.

Muito bem, neste momento nossos bancos de dados estão criados e ambos contendo a mesma configuração para as propriedades: Size, MaxSize e FileGrowth, como também, configurados para que o crescimento ocorra de forma aleatória para os arquivos de dados.

Vamos validar nossa estrutura através do Bloco de Código 2 apresentado abaixo, o qual vai nos permitir identificar justamente as configurações que aplicamos no momento da criação dos referidos bancos de dados:

— Bloco de Código 2 —
Select DB_NAME() AS [DatabaseName], Name, file_id, physical_name,
(size * 8.0/1024) as Size,
((size * 8.0/1024) – (FILEPROPERTY(name, ‘SpaceUsed’) * 8.0/1024)) As FreeSpace
From sys.database_files
Go

Após executar o Bloco de Código 2, o Management Studio deverá apresentar o resultado similar a ilustrado na Figura 1 para ambos os bancos de dados:
Figura 1 – Informações sobre os bancos de dados seus arquivos, tamanhos e espaço livre ocupado.

Nosso próximo passo será forçar o crescimento dos nossos arquivos para o Banco de Dados TesteDatabaseAUTOGROWSINGLEFILE, observando o comportamento que o SQL Server vai utilizar, ressalto que estaremos fazendo a criação da tabela que utilizaremos como base para inserir os dados, para tal cenário vamos utilizar o Bloco de Código 3 apresentado a seguir:

— Bloco de Código 3 —
Use TesteDatabaseAUTOGROWSINGLEFILE
Go

— Criando a Tabela TabelaGrowSingleFile —
Create Table TabelaGrowSingleFile
(Codigo Int Identity(1,1) Not Null Primary Key,
Texto VarChar(100) Default ‘Grow Single File’,
Quantidade SmallInt Default 2018,
ValoresNumericos Numeric(8,2) Default ‘2018.12’,
DataAtual Date Default GetDate()+Rand()*30)
Go

— Inserindo a massa de dados —
Insert Into TabelaGrowSingleFile Default Values
Go 500000

A partir do momento que o Bloco de Código 3 é executado, o Microsoft SQL Server em conjunto com o SQL OS, Database Engine e Storage Engine, começam a fazer uso dos arquivos de dados, distribuindo em tempo real as páginas de dados conforme o método ou técnica escolhida para preenchimento dos arquivos de dados.

Para confirmarmos a alocação e distribuição destas páginas, vamos executar o Bloco de Código 4 apresentado abaixo em uma Nova Query e observar o resultado apresentado:

— Bloco de Código 4 —
Use TesteDatabaseAUTOGROWSINGLEFILE
Go

DBCC ShowFileStats — Comando que vai apresentar a distribuição de páginas de dados entre os arquivos
Go

Observação: Execute o comando DBCC ShowFileStats durante a execução do Bloco de Código 3, para que você possa obter um resultado similar ao apresentado na Figura 2 abaixo:

Figura 2 – Resultado apresentado pelo comando DBCC ShowFileStats.

No decorrer do processamento do Bloco de Código 3, podemos novamente o Bloco de Código 2 para identificar que neste momento o Microsoft SQL Server esta fazendo uso método de preenchimento dos arquivos de dados Round-Robin, no qual ele identifica qual seria o melhor arquivo para alocar a página, para confirmar este cenário a Figura 3 ilustra o resultado obtido de mais uma execução do Bloco de Código 2:
Figura 3 – Alocação dos arquivos de dados.

Observe a mudança de valores nas colunas Size e FreeSpace, como também, suas diferenças de valores em relação ao File_ID=1 para com os File_ID = 2 e 3, são justamente estas diferenças que nos orientam a entender que o Round-Robin esta sendo utilizado.

Estamos indo bem, falta um pouco para chegarmos ao final….

Nosso próximo passo se destina a alterar a forma de preenchimento e utilização dos arquivos de dados definidos para o Banco de Dados TesteDatabaseAUTOGROWALLFILES, e em seguida forçar o uso de cada arquivos e a distribuição de páginas. Vamos então executar o Bloco de Código 5 e sua sequência de passos:

 — Bloco de Código 5 —
— Alterando a definição de crescimento dos arquivos de Dados para o FileGroup Primary —
Use Master
Go

Alter Database TesteDatabaseAUTOGROWALLFILES
Modify FileGroup [Primary] AUTOGROW_ALL_FILES — Definindo o crescimento proporcional   para todos os arquivos de dados —
Go

— Acessando o Banco de Dados —
Use TesteDatabaseAUTOGROWALLFILES
Go

— Criando a Tabela TabelaGrowSingleFile —
Create Table TabelaGrowAllFile
(Codigo Int Identity(1,1) Not Null Primary Key,
Texto VarChar(100) Default ‘Grow All File’,
Quantidade SmallInt Default 2018,
ValoresNumericos Numeric(8,2) Default ‘2018.12’,
DataAtual Date Default GetDate()+Rand()*30)
Go

— Inserindo a massa de dados —
Insert Into TabelaGrowAllFile Default Values
Go 500000

Neste momento temos o banco de dados TesteDatabaseAUTOGROWALLFILES sendo utilizando, no qual sua estrutura de arquivos esta definida para ser utilizada de forma conjunto e proporcional, ou seja, conforme a necessidade de crescimento dos arquivos de dados, ao invés de um único arquivo ser invocado e ter seu valor de crescimento definido, todos os arquivos serão envolvidos e afetados, conforme a Figura 4 a seguir ilustra:
Figura 4 – Preenchimento de todos os arquivos de dados sendo realizado com base no uso da opção Grow_All_Files.

Estamos quase lá, para finalizar nosso estudos, vamos executar o Bloco de Código 6, o qual tem a finalidade de repetir a inserção das 500.000 mil linhas de registros em cada banco de dados e posteriormente forçar um crescimento para os arquivos de dados:

 — Bloco de Código 6 —
— Acessando o Banco de Dados —
Use TesteDatabaseAUTOGROWSINGLEFILE
Go

— Inserindo a massa de dados —
Insert Into TabelaGrowSingleFile Default Values
Go 500000

— Acessando o Banco de Dados —
Use TesteDatabaseAUTOGROWALLFILES
Go

— Inserindo a massa de dados —
Insert Into TabelaGrowAllFile Default Values
Go 500000

Note que para o Banco de Dados TesteDatabaseAUTOGROWSINGLEFILE o crescimento vai ocorrer no primeiro arquivo de dados e para no Banco de Dados TesteDatabaseAUTOGROWALLFILES este crescimento será aplicado a todos os arquivos, conforme apresenta a Figura 5 abaixo:
Figura 5 – Espaço ocupado pelos arquivos de dados após o crescimento ser ocorrido.

Para finalizar, compartilho a Figura 6 que apresenta a utilização dos arquivos de dados por parte do Storage Engine de acordo com o método de alocação e preenchimento dos arquivos de dados, respeitando a configuração dos bancos de dados aqui utilizados:

Figura 6 – Comparativo entre AutoGrowSingleFile versus AutoGrowAllFiles.

Importante: Observe que todos os arquivos de dados definidos para uso no banco de Dados TesteDatabaseAutoGrowAllFiles apresentam os mesmos valores para colunas Size e FreeSpace, cenário totalmente diferente para o banco de dados TesteDatabaseAutoGrowSingleFile, que ilustra a utilização de forma diferente dos arquivos de dados, no qual os arquivos File_ID=2 e 3 estão neste momento sem espaço livre, o que indica que o crescimento foi aplicado ao primeiro arquivo de dados.

Com isso, e sem mais delongas, chegamos ao final. Ufa deu um pouco de trabalho este post, como de costume, mesmo assim sempre vale a pena poder compartilhar um pouco do conhecimento e experiências adquiridas ao longo dos anos de trabalho como DBA e Professor.

Espero que você tenha gostado, eu posso dizer que sim, mas sua opinião é muito importante.


Referências

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

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-file-and-filegroup-options?view=sql-server-2017

https://blogs.msdn.microsoft.com/psssql/2016/03/15/sql-2016-it-just-runs-faster-t1117-and-t1118-changes-for-tempdb-and-user-databases/

https://www.brentozar.com/archive/2014/06/trace-flags-1117-1118-tempdb-configuration/

https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-files-and-filegroups?view=sql-server-2017

https://www.sqlshack.com/understanding-sql-server-proportional-fill-algorithm/

http://www.sqlservercentral.com/scripts/Maintenance+and+Management/30218/

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/2018/08/22/22-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2018/05/28/21-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2018/04/12/20-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2018/01/02/19-para-que-serve/

Conclusão

Conhecer a cada nova versão as mudanças e novidades aplicadas ao Microsoft SQL Server não é uma tarefa fácil, mas deixar de fazer uso delas pode em algum momento parecer falta de interesse ou até mesmo desconhecimento do potencial existente no produto.

Neste post, podemos conhecer esta nova opção Auto_Grow_All_Files, que nos permite aplicar uma nova maneira de orientar o SQL Server no uso, alocação e principalmente crescimento de nossos arquivos de dados, o que pode ou não impactar de forma direta na performance, contenção ou distribuição de recursos relacionados a disco rígido.

Em momento algum, o cenário aqui utilizado, muito menos a análise feita, teve o objetivo de comprovar qual forma de alocação e uso dos arquivos de dados é melhor, isso deve ser analisado para cada necessidade e ambiente.

Espero que o conteúdo aqui apresentado possa lhe ajudar a conhecer um pouco sobre como os arquivos de dados são importantes e úteis para nossos bancos, além disso, a importância de se utilizar mais de um arquivo de dados ou filegroups.

Este é o fantástico Microsoft SQL Server, que desde suas primeiras versões nos apresenta inúmeras possibilidade de se aprender, possibilitando usar o passado como fonte de inspiração para construção de um futuro melhor, por isso que a cada dia eu me apaixono ainda mais por este produto…

Vai SQL Server, Vai SQL Server….

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 a ser publicado no mês fevereiro de 2019.

Um grande abraço e ótima semana.

Valeu.

Anúncios

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 cada vez mais melhorar ainda.

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 2014 SP3 Atualização Cumulativa 1 liberada


A Microsoft informou no decorrer desta semana em seu blog SQL Server Release Services a disponibilidade da Atualização Cumulativa 1 para SQL Server 2014 SP3.

Com base, no artigo KB4470220 publicado no site de suporte, a atualização traz correções para múltiplos bugs no SQL Server 2014 SP3.

A lista com os bugs corrigidos destaca um dos mais reportados após o lançamento do Service Pack, conhecido por causar a ocorrência de resultados incorretos quando você converte o parâmetro pollinginterval de segundos para horas na System Stored Procedure sys.sp_cdc_scan, outro bug destacado se relacionado com um erro de violação de acesso no SQL Server Analysis Services durante o processamento de um banco de dados analítico.

A Atualização Cumulativa 1 para SQL Server 2014 SP3 está disponível para download em múltiplos idiomas para plataformas 32 e 64 bits, após a instalação desta atualização o Build Version será evoluído para o número: 12.0.6205.1.

A seguir destaco relação completa de atualizações disponíveis para o Microsoft SQL Server 2014 desde o seu lançamento, em destaque as mais recentes dentre elas o Service Pack 3.

SQL Server 2014 Service Pack 3 (SP3) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP3 CU1 12.0.6205.1 KB4470220 12 de dezembro de 2018
SQL Server SP3 de 2014 12.0.6024.0 KB4022619 30 de outubro de 2018

SQL Server 2014 Service Pack 2 (SP2) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP2 CU15 12.0.5605.1 KB4469137 12 de dezembro de 2018
SQL Server 2014 SP2 CU14 12.0.5600.1 KB4459860 15 de outubro de 2018
SQL Server 2014 SP2 CU13 12.0.5590.1 KB4456287  27 de agosto de 2018
SQL Server 2014 SP2 CU12 12.0.5589.7 KB4130489 18 de junho de 2018
SQL Server 2014 SP2 CU11 12.0.5579.0 KB4077063 19 de março de 2018
SQL Server 2014 SP2 CU10 12.0.5571.0 KB4052725 16 de janeiro de 2018
SQL Server 2014 SP2 CU9 12.0.5563.0 KB4055557 18 de dezembro de 2017
SQL Server 2014 SP2 CU8 12.0.5557.0 KB4037356 16 de outubro de 2017
SQL Server 2014 SP2 CU7 12.0.5556.0 KB4032541 28 de agosto de 2017
SQL Server 2014 SP2 CU6 12.0.5552.0 KB4019094 17 de julho de 2017
SQL Server 2014 SP2 CU5 12.0.5546.0 KB4013098 17 de abril de 2017
SQL Server 2014 SP2 CU4 12.0.5540.0 KB4010394 21 de fevereiro de 2017
SQL Server 2014 SP2 CU3 12.0.5538.0 KB3204388 19 de dezembro de 2016
SQL Server 2014 SP2 CU2 12.0.5522.0 KB3188778 17 de outubro de 2016
SQL Server 2014 SP2 CU1 12.0.5511.0 KB3178925 25 de agosto de 2016
SQL Server 2014 SP2 12.0.5000.0 KB3171021 11 de julho de 2016

SQL Server 2014 Service Pack 1 (SP1) e atualização cumulativa (CU) compilações


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
SQL Server 2014 SP1 CU13 12.0.4520.0 (build mais recente) KB4019099 17 de julho de 2017
SQL Server 2014 SP1 CU12 12.0.4511.0 KB4017793 17 de abril de 2017
SQL Server 2014 SP1 CU11 12.0.4502.0 KB4010392 21 de fevereiro de 2017
SQL Server 2014 SP1 CU10 12.0.4491.0 KB3204399 19 de dezembro de 2016
SQL Server 2014 SP1 CU9 12.0.4474.0 KB3186964 17 de outubro de 2016
SQL Server 2014 SP1 CU8 12.0.4468.0 KB3174038 15 de agosto de 2016
SQL Server 2014 SP1 CU7 12.0.4459.0 KB3162659 20 de junho de 2016
SQL Server 2014 SP1 CU6 12.0.4457.0 KB3167392 30 de maio de 2016
SQL Server 2014 SP1 CU6 (preterido) 12.0.4449.0 KB3144524 18 de abril de 2016
SQL Server 2014 SP1 CU5 12.0.4439.1 KB3130926 22 de fevereiro de 2016
SQL Server 2014 SP1 CU4 12.0.4436.0 KB3106660 21 de dezembro de 2015
SQL Server 2014 SP1 CU3 12.0.4427.24 KB3094221 19 de outubro de 2015
SQL Server 2014 SP1 CU2 12.0.4422.0 KB3075950 17 de agosto de 2015
SQL Server 2014 SP1 CU1 12.0.4416.1 KB3067839 19 de junho de 2015
SQL Server SP1 de 2014 12.0.4100.1 KB3058865 4 de maio de 2015

Compilações do SQL Server 2014 atualização cumulativa (CU)


Nome da atualização cumulativa Versão da compilação Número da base de dados de conhecimento Dia do lançamento
CU14 12.0.2569.0 (build mais recente) KB3158271 20 de junho de 2016
CU13 12.0.2568.0 KB3144517 18 de abril de 2016
CU12 12.0.2564.0 KB3130923 22 de fevereiro de 2016
CU11 12.0.2560.0 KB3106659 21 de dezembro de 2015
CU10 12.0.2556.4 KB3094220 19 de outubro de 2015
CU9 12.0.2553.0 KB3075949 17 de agosto de 2015
CU8 12.0.2546.0 KB3067836 19 de junho de 2015
CU7 12.0.2495.0 KB3046038 20 de abril de 2015
CU6 12.0.2480.0 KB3031047 16 de fevereiro de 2015
CU5 12.0.2456.0 KB3011055 17 de dezembro de 2014
CU4 12.0.2430.0 KB2999197 21 de outubro de 2014
CU3 12.0.2402.0 KB2984923 18 de agosto de 2014
CU2 12.0.2370.0 KB2967546 27 de junho de 2014
CU1 12.0.2342.0 KB2931693 21 de abril de 2014

Fontes e Direitos Autorais: Suporte da Microsoft – Versões de compilação do SQL Server 2014 – 14/12/2018 – https://support.microsoft.com/pt-br/help/2936603/sql-server-2014-build-versions

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

Microsoft SQL Server 2014 SP3 liberado para download


A Microsoft anunciou na semana passada em seu blog SQL Server Release Services a disponibilidade do SQL Server 2014 SP3 (Service Pack 3), seu pacote cumulativo de atualizações mais recente para esta versão do SQL Server.

Os service packs do SQL Server 2014 são atualizações cumulativas e atualizam todas as edições e níveis de serviço do SQL Server 2014 para o SP3.

Microsoft anuncia disponibilidade do SQL Server 2014 SP3De acordo com a Microsoft, o Service Pack 3 traz diversas melhorias com foco na performance, escalabilidade e diagnósticos com base no feedback de seus clientes e da comunidade.

Ele também traz correções para múltiplos bugs e altera o build do SQL Server 2014 para 12.0.6024.0.

A lista com os bugs corrigidos inclui um que causa o erro Non-yielding Scheduler e faz com que o SQL Server pareça travado, um que causa erro de violação de acesso quando uma consulta faz referência à função SQLCLR em certos cenários e um que causa o erro EXCEPTION_ACCESS_VIOLATION para consultas usando sys.dm_os_memory_objects statement.

O Feature Pack para esta versão será disponibilizado para download em novembro deste ano, a relação completa de bugs corrigidos pode ser vista no artigo KB4022619 publicado no site de suporte da Microsoft.

Para realizar download específico para edição Express clique na imagem abaixo:

Para as demais versões clique na imagem a abaixo:

Fontes e Direitos Autorais: SQL Server Release Services – Server & Tools Blogs > Data Platform Blogshttps://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2014-service-pack-3-is-now-available/

Material de Apoio – Outubro 2018


Bom dia, bom dia, bom dia…

Tudo bem? Estamos no mês de outubro, as eleições terminaram, e os brasileiros escolheram os seus representantes, passado estes últimos acontecimentos, começamos a direcionar nossos esforços e pensamentos nos acontecimentos de final de ano, aquele momento tão esperado por todos esta mais uma vez se aproximando e nossos sonhos de um futuro melhor começam novamente a serem renovados.

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 cada vez mais melhorar ainda.

O post de hoje

Seja bem-vindo a mais um post da sessão Material de Apoio, sendo o quarto do ano de 2018 e de número 159 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 exclusivamente ao recurso de Linked Server, sendo este, uma funcionalidade existente a muitos anos no Microsoft SQL Server, que nos permite de uma forma bastante simples, mas não muito prática e performática estabelecer um canal de acesso entre fontes de dados distintas, possibilitando em tempo real que o próprio SQL Server possa acessar e manipular dados entre estas fontes, bem como, armazenar estes mesmos dados internamente.

Segue abaixo a relação de temas relacionados ao uso Linked Server:

  • Access;
  • Active Directory;
  • Excel;
  • Query Dinâmica;
  • Remote Servers;
  • Senhas;
  • sp_addlinkedserver;
  • sp_addlinkedsrvlogin;
  • sp_droplinkedsrvlogin;
  • sp_dropserver;
  • Stored Procedure;
  • sys.linked_logins;
  • sys.server_principals;
  • sys.servers;
  • Transações; e
  • Variáveis.

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 – Outubro 2018 – Linked Server – Acessando – Active Directory via Linked Server.sql

2 – Material de Apoio – Outubro 2018 – Linked Server – Configurando – Linked Server entre Access 2010 e SQL Server 2008.sql

3 – Material de Apoio – Outubro 2018 – Linked Server – Criando – Linked Server entre Access e Banco de Dados com Senha.sql

4 – Material de Apoio – Outubro 2018 – Linked Server – Criando – Linked Server para acesso ao Excel.sql

5 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Transaçoes no Linked Server.sql

6 – Material de Apoio – Outubro 2018 – Linked Server – Obtendo informacoes sobre o Linked Server.sql

7 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Query Dinâmica em conjunto com Linked Server e Variável.sql

8 – Material de Apoio – Outubro 2018 – Linked Server – Trabalhando com Linked Server e seus recursos básicos.sql

9 – Material de Apoio – Outubro 2018 – Linked Server – Realizando um update através de uma conexão via Linked 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/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 dezembro, 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 colocada ao nosso redor.

Um forte abraço, muita saúde, sucesso e nos encontramos no final do ano (que na verdade já chegou)….

Microsoft SQL Server 2014 SP2 recebe atualização cumulativa 14


A Microsoft anunciou na última segunda-feira no blog SQL Server Release Services a disponibilidade da Atualização Cumulativa 14 para SQL Server 2014 SP2, esta atualização contém correções para os problemas que foram descobertos depois do lançamento do SQL Server 2014 SP2 e das atualizações cumulativas anteriores.

O artigo KB4459860 publicado no site de suporte da Microsoft, a atualização traz correções para múltiplos bugs no SQL Server 2014 SP2.

Atualização Cumulativa 14 para SQL Server 2014 SP2

A lista com os bugs corrigidos inclui um que causa erro de violação de acesso no SQL Server Analysis Services durante o processamento de certos bancos de dados, um que causa erro de violação de acesso durante uma consulta que faz referência ao tipo de dado Extended Markup Language (XML) e um que causa erro de falta de memória em certos cenários.

A relação completa com todos os bugs corrigidos pode ser vista através do link: https://support.microsoft.com/en-us/help/4459860/cumulative-update-14-for-sql-server-2014

A Figura 1 abaixo destaca a relação de arquivos disponíveis para download relacionados a  atualização cumulativa 14, nas arquiteturas de sistemas operacionais 32 e 64 bits:

Figura 1 – Relação de arquivos disponíveis para download relacionados ao SQL Server 2014 SP2 CU 14.

A Atualização Cumulativa 14 para SQL Server 2014 SP2 (build 12.0.5600.1) está disponível para download clicando na imagem abaixo:

Compatível com os seguintes sistemas operacionais (para múltiplos idiomas):

  • Windows 10,
  • Windows 7,
  • Windows 7 Service Pack 1,
  • Windows 8,
  • Windows 8.1,
  • Windows Server 2008 R2,
  • Windows Server 2008 R2 SP1,
  • Windows Server 2012,
  • Windows Server 2012 R2, e
  • Windows Server 2016.

Fontes e Direitos Autorais: Microsoft – Download Center: 15/10/2018.

Exchange Server 2016 atualização cumulativa 11 liberada


A Microsoft disponibilizou para download a Atualização Cumulativa 11 para Exchange Server 2016.

Com base no artigo KB4134118 publicado no site de suporte da Microsoft, este pacote cumulativo traz correções de bugs e pode ser usado para efetuar uma nova instalação do Exchange Server 2016 ou para atualizar uma instalação existente.

Atualização Cumulativa 11 para Exchange Server 2016A lista com os bugs corrigidos inclui que faz com que um usuário do Exchange Server 2016 não consiga acessar um calendário compartilhado do Exchange Server 2013, um que faz com que clientes ActiveSync não consigam se conectar ou a sincronização é mais demorada em um ambiente com Exchange Server e um que faz com que o Outlook na Web entre em um loop infinito durante a autenticação.

A relação completa com os bugs corrigidos pela Atualização Cumulativa 11 para Exchange Server 2016 pode ser encontrada no link: https://support.microsoft.com/pt-br/help/4134118/cumulative-update-11-for-exchange-server-2016

Diferente das versões mais antigas do Exchange, as atualizações cumulativas não usam a infraestrutura de rollup, ao contrário, com o novo modelo de servicing do Exchange as atualizações cumulativas basicamente são versões completas do produto.

Desta forma, quando você for implementar um novo servidor com o Exchange Server 2016, basta usar a atualização cumulativa mais recente para instalar o produto completo e já atualizado. O download da Atualização Cumulativa 11 para Exchange Server 2016 pode ser feito clicando na imagem abaixo:

Vale ressaltar que esta atualização se aplica ao Exchange Server 2016 Standard e Enterprise, a atualização está disponível como um arquivo ISO com pouco mais de 5.5GB.

Fontes e Direitos Autorais: Microsoft – Suporte da Microsoft – 17/10/2018.

Script Challenge – 14 – A resposta….


Boa tarde, pessoal…

Tudo bem?  Seja mais uma vez muito bem vindo ao meu blog, mais especificamente ao post que apresenta a resposta para o Script Challenge – 2018 – Post 14, publicado em junho de 2018, sendo este respectivamente o segundo post após o retorno desta desafiadora sessão em meu blog denominada Script Challenge (Script Desafiador ou Desafio do Script) como queiram traduzir.

Espero que você já tenha ouvido falar desta sessão ou acessado alguns dos posts publicados na mesma, caso ainda não tenha feito, fique tranquilo você vai encontrar no final deste post uma pequena relação contendo os últimos desafios lançados e seus respostas.

Vamos então falar um pouco mais sobre o último desafio, estou me referindo ao Script Challenge 14, desta forma, seja bem vindo a mais um post da sessão Script Challenge.


Script Challenge 14

Falando do desafio de número 14, o mesmo foi publicado no mês de junho de 2018, período de data em que o mundo todo praticamente direcionou os seus olhares para a Rússia, mais especificamente para os jogos de futebol que estavam ocorrendo no país naquele momento.

Pois bem, o Script Challenge 14 não tem nenhum relação com o mundo do futebol, muito menos com o esporte, e como diria aquele apresentador do programa que passa ao domingos: “Sabe o que isso significa? Nada…..”.

Na verdade não é bem assim, para todos aqueles que trabalham com tecnologia e são responsáveis em armazenar, compartilhar, gerenciar e manter dados armazenados em banco de dados, sabe muito bem o quanto temos que nos preocupar em estabelecer boas práticas de retenção de dados afim de podermos ter uma quem sabe vida tranquila ou momentos de lazer.

Continuando nossa história, quero lhe perguntar: E ai já matou a charada? Eu acredito que sim!

Mas para te ajudar mais um pouco vou apresentar a Figura 1 que contem todo código Transact-SQL utilizado neste desafio, contendo trechos ou partes de código ocultas, procedimento que realizei no post que contempla o lançamento deste desafio como forma de aumentar o nível de dificuldade:

Figura 1 – Código Transact-SQL apresentado no Script Challenge 14.

Bom chegou a hora de revelar o que exatamente este bloco de código esta fazendo, chegou o momento de revelar e desvendar este desafio, a seguir apresento a resposta para o Script Challenge 14 e o trecho de código disponível para você utilizar em seus ambientes de trabalho ou estudos.

A resposta

Tanto no post de lançamento do desafio, bem como, neste post que a resposta para o mesmo, eu deixei algumas pequenas dicas para tentar ajudar a identificar a resposta, dentre as quais a relação do script com uma das mais tradicionais atividades desempenhadas por um Administrador de Banco de Dados ou Profissional de tabela, mais diretamente falando a execução de uma operação de backup de banco de dados.

Mas se mesmo assim, você ainda não conseguiu adivinhar ou até mesmo esta se perguntando qual a relação do Script Challenge – 14 tem haver com um momento de lazer, a resposta é muito simples, para qualquer Administrador de Banco de Dados, Administrador de Servidores, Desenvolvedor, enfim um profissional de tecnologia, tudo o que fazemos basicamente em um computador é manipular dados (Criar, Atualizar, Excluir).

Tudo o que fazemos esta relacionado com esta palavrinha pequena mas de altíssima importância e pensando neste sentido a resposta para este desafio se relaciona a estimativa de crescimento de um arquivo de backup, e o quanto esta atividade tão importante e de alta complexidade pode impactar totalmente na vida daqueles que assim como eu um dia ou por diversos momentos teve que abrir mão do seu convívio familiar para se dedicar a acompanhar esta atividade.

Então a resposta para o Script Challenge 14 se relaciona com a possibilidade que o script apresenta em nos ajudar a identificar e estimar o quanto de espaço livre em disco em megabytes ainda teremos antes da execução do backup database levando-se em consideração o tamanho do arquivo de backup a ser criado.

Isso mesmo, esta é a resposta, e o script original que apresenta esta funcionalidade apresentada abaixo:

— Script Challenge 14 – A resposta – Identificando o total de espaço livre em disco antes da realização do backup database — 

— Criando a Stored Procedure —
USE AdventureWorksDW2016
Go

CREATE PROCEDURE dbo.dbo.EstimatedDriveFreeSpaceAndDBSize (
@drvLetter VARCHAR (5),
@enoughSpaceForBackupFlag BIT OUTPUT
)
AS
BEGIN
DECLARE @estimatedBackSizeMB INT,
@estimatedDriveFreeSpaceMB INT,
@dbCheckMessage varchar(80)

SET NOCOUNT ON

SET @dbCheckMessage = Concat (‘Checking database ‘, DB_NAME ())

SELECT @estimatedBackSizeMB = round (sum (a.total_pages) * 8192 / SQUARE (1024.0), 0)
FROM sys.partitions p JOIN sys.allocation_units a
                                            ON p.partition_id = a.container_id
                                           LEFT JOIN sys.internal_tables it
                                            ON p.object_id = it.object_id

CREATE TABLE #freespace

(drive VARCHAR (5),

MBFree DECIMAL (8, 2))

INSERT INTO #freespace (Drive, MBFree)
EXEC xp_fixeddrives

SELECT @estimatedDriveFreeSpaceMB = MBFree
FROM #freespace
WHERE drive = @drvLetter

IF @estimatedBackSizeMB * 1.15 < @estimatedDriveFreeSpaceMB
 SET @enoughSpaceForBackupFlag = 1
ELSE
 SET @enoughSpaceForBackupFlag = 0

SELECT DatabaseName = db_name(),
Estimated_Back_Size_MB = @estimatedBackSizeMB,
Estimated_Drive_Free_Space_MB = @estimatedDriveFreeSpaceMB,
EnoughSpaceForBackupFlag = @enoughSpaceForBackupFlag

DROP TABLE #freespace
SET NOCOUNT OFF
END
GO

Então, agora você deve ter gostado deste desafio, não é verdade? Poder estimar o espaço livre em disco e o tamanho ocupado pelo arquivo mesmo sem executar o Backup Database é realmente uma grande funcionalidade que o Microsoft SQL Server possui. 

Observações

  1. Estamos criando uma User Stored Procedure EstimatedDriveFreeSpaceAndDBSize;
  2. A mesma possui um parâmetros de entrada de valores: @drvLetter (utilizado para informar qual a letra da unidade de disco que iremos analisar); e
  3. Um parâmetro de saída @enoughSpaceForBackupFlag (utilizado no momento da execução da stored procedure como sinalizar responsável em apresentar uma mensagem ao usuário).

Para que você possa entender mais ainda sobre como podemos obter os resultados apresentados por este script, declaro a seguir uma possível maneira de executar o Script Challenge – 14:

— Executando o Script Challenge – 14 —

USE AdventureWorksDW2016
Go

DECLARE @enoughSpaceForBackupFlag bit

EXEC Master.dbo.EstimatedDriveFreeSpaceAndDBSize ‘S’, @enoughSpaceForBackupFlag OUTPUT

PRINT @enoughSpaceForBackupFlag
IF @enoughSpaceForBackupFlag = 1
PRINT ‘Continue to Backup…’
ELSE
PRINT ‘Drive Space Problem…’
GO

A Figura 2 apresentada abaixo, ilustra o conjunto de dados retornados após a execução do Script Challenge – 14:

Figura 2 – Informações relacionadas a estimativa de tamanho do arquivo de backup e espaço livre em disco em megabytes.

Muito bom, sensacional, conseguimos, chegamos ao final, esta é a resposta para o Script Challenge 14, fico extremamente feliz por ter conseguido compartilhar este conteúdo com vocês.

Espero que você tenha gostado deste novo post da sessão Script Challenge!


Sua Participação

No post de lançamento deste desafio, contei com a participação através de uma enquete contendo algumas opções de respostas que poderiam estar relacionadas com o Script Challenge 14. A seguir apresento o resultado desta enquete:

A opção mais votada com 77,78% dos votos é justamente a resposta correta para este desafio, o qual exibe retorna ao usuário informações relacionadas a estimativa de espaço em disco ocupado pelo arquivo de backup de banco de dados e o espaço livre disponível em disco após a conclusão do backup.

Referências

Agradecimentos

Obrigado por sua visita, espero que este conteúdo aqui apresentado como um possível “desafio” possa ser útil e ao mesmo tempo prover conhecimento, aprendizado ou mostrar recursos e problemas existentes no Microsoft SQL Server que as vezes parecem não ter uma resposta.

Um forte abraço nos encontramos em breve nas demais sessões e especialmente em fevereiro de 2019 em mais um post da sessão Script Challenge.

Até a próxima…

Windows Server 2019 Essentials disponível gratuitamente por até 180 dias


A Microsoft liberou para download em sua plataforma Microsoft Evaluation Center a versão de avaliação do Windows Server 2019 Essentials, que pode ser utilizada gratuitamente pelo período de até 180 dias.

Caso você ainda não saiba, o Windows Server Essentials oferece uma solução de servidor flexível, acessível e fácil de usar para pequenas empresas com até 25 usuários e 50 dispositivos.

Experimente o Windows Server 2019 Essentials gratuitamente por até 180 diasIndicada principalmente para ser implementada como um primeiro servidor, o Windows Server Essentials também pode ser usado como servidor principal em um ambiente multiservidores(Multi-Servers) para pequenas empresas.

A versão de avaliação do Windows Server 2019 Essentials está disponível para download em arquivo no formato ISO e apenas para plataformas 64 bits nos seguintes idiomas:

  • Chinês (simplificado);
  • Holandês (Holanda);
  • Inglês;
  • Francês;
  • Húngaro;
  • Italiano;
  • Japonês;
  • Coreano;
  • Polonês;
  • Português (Brasil);
  • Português (Portugal);
  • Russo;
  • Espanhol;
  • Sueco (Suécia);
  • Turco; e
  • Tcheco.

A realizar o pedido de download e instalação, utilize a seguinte chave de produto: NJ3X8-YTJRF-3R9J9-D78MF-4YBP4, informada pela Microsoft válida para o uso durante o período de 180 dias.

Para maiores informações sobre esta nova versão do Windows Server acesse: https://docs.microsoft.com/en-us/windows-server-essentials/get-started/what-s-new-19?branch=WS2019-RELEASE

Fontes e Direitos Autorais: Microsoft.com – Docs – 03/10/2019.

Microsoft Hyper-V Server 2019 disponível


Em conjunto com o anúncio da nova versão do Windows Server 2019, a Microsoft anunciou também a disponibilidade o Hyper-V Server 2019, produto gratuito que oferece virtualização de classe empresarial para seu datacenter e sua nuvem híbrida.

Através do Microsoft Hyper-V Server 2019 você poderá utilizar recursos novos e aprimorados que podem ajudar a suprir as necessidades de performance e escala das suas cargas de trabalho de missão crítica.

O Microsoft Hyper-V Server 2019 está disponível para download como um arquivo ISO apenas para plataformas 64 bits e nos seguintes idiomas:

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

Fontes e Direitos Autorais: Microsoft.com – Evaluation Center – 03/10/2019.

Microsoft divulga a disponibilidade do novo Microsoft Windows Server 2019


A Microsoft divulgou ontem no Windows Server Blog a disponibilidade do novo Microsoft Windows Server 2019, nova versão do seu sistema operacional para servidores.

Através do anúncio enviado aos clientes com Software Assurance, a Microsoft informou a disponibilidade do download do Windows Server 2019 através do portal Volume Licensing Service Center (VLSC).

Microsoft anuncia disponibilidade geral do Windows Server 2019Profissionais de TI e empresas interessadas podem experimentar a versão de avaliação do novo Windows Server que estará disponível em breve no Microsoft Evaluation Center.

Os clientes que neste momento estão utilizando o Windows Server na plataforma Azure, o Windows Server 2019 também está disponível no Azure Marketplace.

No decorrer deste mês de outubro o novo Windows Server será disponibilizado para os assinantes do Visual Studio (ex-MSDN) e em outros portais como o Microsoft Partner Network (MPN).

Para saber mais sobre o novo Windows Server consulte as sessões da conferência Ignite que agora estão disponíveis sob demanda, como também, confira a documentação atualizada disponível aqui.

Caso pretenda fazer o upgrade a partir de uma versão anterior, acesse o novo Upgrade Center para encontrar informações úteis sobre o processos de upgrade e mais.

Para testar futuras versões do Windows Server, inscreva-se no Windows Insider Program ou no Windows Insider Program for Business.

Para maiores informações acesse: http://aka.ms/WS2019Preview

Fontes e Direitos Autorais: Microsoft.com – Windows Server Blog – Vinicius Apolinário – 02/10/2019.

Microsoft SQL Server Management Studio 18.0 Preview 4 disponível


No decorrer desta semana em seu grande evento Ignite 2018 realizado em Orlando, a Microsoft anunciou a disponibilidade da próxima versão do Microsoft SQL Server 2019 e também liberou para download a última versão preview do Microsoft SQL Server Management Studio 18.0.

O SQL Server Management Studio é um ambiente integrado para gerenciar qualquer infraestrutura de SQL, do SQL Server para o Banco de Dados SQL do Microsoft Azure. O SSMS fornece ferramentas para configurar, monitorar e administrar instâncias do SQL. Use o SSMS para implantar, monitorar e atualizar os componentes da camada de dados usados pelos seus aplicativos, além de construir consultas e scripts.

Através do SQL Server Management Studio (SSMS) podemos realizar consultas, criar e gerenciar seus bancos de dados e data warehouses, independentemente de onde estiverem – no computador local ou na nuvem.

De acordo com o changelog publicado aqui pela Microsoft, a versão 18.0 traz correções de bugs e novidades como o suporte para o SQL Server 2019 Preview, tamanho de download reduzido, melhorias na acessibilidade, suporte para instalação em uma pasta diferente da padrão e mais.

A Figura 1 apresentada abaixo, ilustre a tela de apresentação do novo Microsoft SQL Server Management Studio 2019 após a instalação:

Figura 1 – Tela de apresentação do Microsoft SQL Server Management Studio 18.0 Preview 4.

O Microsoft SQL Server Management Studio v18.0 Preview 4 (build 15.0.18040.0) está disponível para download, através do link: https://go.microsoft.com/fwlink/?linkid=2014662.

A Figura 2 apresentada abaixo, destaca as informações sobre esta nova versão do Microsoft SLQ Server Management Studio 18.0 Preview 4 após a instalação:
Figura 2 – Informações sobre o Microsoft SQL Server Management Studio 18.0 Preview 4.

Compatível com as versões do Microsoft SQL Server versão 2008 até 2019, bem como, para versões e arquiteturas de sistemas operacionais 64 bits: Windows 10 v1607 ou posterior, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 e Windows Server 2016.

Informações sobre a versão
Número de lançamento: 18.0 (Preview 4).
Número de compilação: 15.0.18040.0.
Data de lançamento: 24 de setembro de 2018.

Idiomas disponíveis

Esta nova versão do Microsoft SQL Server Management Studio 18.0 Preview 4 esta disponível para os seguinte idiomas:

Chinese (Simplified) | Chinese (Traditional) | English (United States) | French | German | Italian | Japanese | Korean | Portuguese (Brazil) | Russian | Spanish

Importante
A instalação do Microsoft SQL Server Management Studio 18.0 Preview 4 não atualiza ou substitui as versões do Microsoft SQL Server Management Studio 17.x ou anterior.

O Microsoft SQL Server Management Studio 18.0 Preview 4 se instala lado a lado com versões anteriores para que ambas as versões estejam disponíveis para uso.

Para maiores informações acesse: https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-changelog-ssms?view=sql-server-2017

Para realizar o download, basta clicar na imagem abaixo:
Fontes e Direitos Autorais: Microsoft – Docs SQL Tools SQL Server Management Studio (SSMS).

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…

Nova atualização de microcódigo para processadores da Intel para o Windows 10 liberada


A Microsoft disponibilizou nos últimos dias sua mais recente atualização de microcódigo para processadores da Intel em PCs com o Windows 10 v1803, v1709, v1703, v1607 e v1507. Esta atualização tem como objetivo oferecer mitigações para a vulnerabilidade Spectre v2 (CVE 2017-5715).

Mais detalhes e a lista com os processadores suportados estão disponíveis nos artigos correspondentes publicado no site de suporte da Microsoft para as versões do Windows 10 mencionadas acima:

O links apresentados abaixo, destacam os KBs específicos de cada versão de Windows 10:

Os usuários das versões do Windows 10 suportadas podem fazer o download da atualização via Windows Update ou através do Catálogo do Microsoft Update clicando nos botões abaixo:

Download atualização Windows 10 v1803

Download atualização Windows 10 v1709

Download atualização Windows 10 v1703

Download atualização Windows 10 v1607

Download atualização Windows 10 v1507

Vale ressaltar, que estas novas atualizações podem apresentar o mesmo comportamento já presenciado nas atualizações disponibilizadas anteriormente, tornando possível a decorrência de impactos negativos na performance do computador.

Fontes e Direitos Autorais: Suporte da Microsoft – 13/09/2018.