Arquivo

Archive for the ‘Desafio do Gordo’ Category

DESAFIO DO GORDO – Azure SQL Database

Galera,

Hoje teremos nosso primeiro desafio falando sobre Azure SQL Database e quero saber de vocês o seguinte:

Quais são os Service Tiers disponíveis no Azure e qual a diferença entre eles?

Espero a participação de todos em mais este desafio e aproveite também para inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

SOLUÇÃO DO DESAFIO DO GORDO – Como funciona o backup diferencial?

Fala galera,

Antes de mais nada quero agradecer novamente a todos que participaram do último Desafio do Gordo e dizer que todos acertaram sobre o funcionamento de um backup diferencial no SQL Server.

Para que o SQL Server seja capaz de fazer o backup apenas das extents alteradas ou criadas desde o último backup FULL, é necessário identificar quais as páginas que mudaram.

A identificação destas extents é realizada através de um bitmap chamado Diferencial Changed Map ou DCM.

Ao iniciar o backup diferencial o SQL Server consulta o DCM e copia somente as extents listadas nesta página, conforme ilustrado na Figura 1.

SQL-differential-backup-bitmap-page-1
Figura 1 – Verificando o DCM durante o backup diferencial

É importante ressaltar que durante o backup full é realizada a limpeza da DCM para que a mesma possa ser utilizada para os próximos backups diferenciais.

Espero que tenham gostado e não deixem de inscreverem-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

DESAFIO DO GORDO – Como funciona o backup diferencial?

Galera,

Neste novo DESAFIO DO GORDO quero desafiá-los com uma pergunta sobre backup.

Quero saber como o SQL Server consegue identificar quais foram as páginas de dados alteradas desde o último backup full e que precisam ser gravadas no backup diferencial?

Não esqueçam também que nesta quinta-feira (24/03), à partir das 19:00, teremos mais uma reunião do SQLManiacs.

A reunião ocorrerá novamente na DoMore que fica localizada na Avenida Paulista, 807 – 18º andar e o tema será Entendendo aplicabilidade do Big Data e Data Science em cenários reais.

Espero a participação de todos em mais este desafio e também na reunião.

Aproveite também para inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

SOLUÇÃO – DESAFIO DO GORDO – Quais recursos podem sofrer DEADLOCK?

Galera,

Quero agradecer pela participação de todos no último DESAFIO DO GORDO e dizer também que a cada desafio me surpreendo mais com o interesse de vocês em conhecer o SQL Server de forma avançada.

Praticamente todos que enviaram sua resposta acertaram quais os recursos que podem sofrer com o DEADLOCK.

A intenção desse desafio foi mostrar que o processo de deadlock pode ocorrer com outros recursos além dos objetos de bancos de dados (tabelas, linhas, páginas e etc).

Os recursos que podem sofrer com o deadlock são os seguintes:

  • Worker Threads – Uma solicitação em fila que está aguardando por um worker e a mesma possui bloqueios em objetos solicitados por outros workers então pode ocorrer um deadlock;
  • Memoria – Quando requisições concorrentes estão aguardando por memória RAM e essa solicitação de memória RAM não é atendida, uma das requisições pode sofrer o deadlock;
  • Execução em paralelo de uma consulta (Paralelismo) – As múltiplas threads podem acabar bloqueando-se em algum momento e causar o deadlock;

Espero que tenham gostado e não deixem de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

 

DESAFIO DO GORDO – Quais recursos podem sofrer DEADLOCK?

Galera,

No desafio de hoje quero fazer uma pergunta sobre DEADLOCK e espero que todos vocês participem.

Gostaria de saber quais recursos podem sofrer com o DEADLOCK em um ambiente de banco de dados SQL Server além dos objetos de bancos de dados e quando esses DEADLOCKs podem acontecer?

Espero que gostem e não deixem de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

 

SOLUÇÃO DO DESAFIO DO GORDO – The Column is 80 percent full

Galera,

Antes de mais nada quero agradecer a todos que participaram do último Desafio do Gordo e parabenizá-los também, pois tivemos várias abordagens interessantes e muitas respostas corretas.

Apesar de parecer extremamente complexo esse warning que mostrei, ele é baseado simplesmente no limite máximo que um determinado tipo de dados suporta de informação no SQL Server.

No exemplo citado, uma coluna definida com o o tipo de dados INT suporta um valor numérico entre –2.147.483.647 e 2.147.483.647 e caso qualquer valor acima deste limite tente ser inserido ocorrerá um erro alertando que o tipo de dados não suporta o valor.

Pensando nessa limitação fica bem mais fácil entender que o warning era referente a quantidade de informação já inserida na coluna CodCli e que essas informações já estavam utilizando 80% do range de valores suportados pelo tipo de dados INT.

E como poderíamos evitar qualquer problema mais grave em nosso banco de dados SQL Server?

Para evitarmos qualquer problema seria necessário alterar o tipo de dados da coluna CodCli de INT para BIGINT, permitindo assim um range de valores numéricos entre -9.223.372.036.854.775.808 e 9.223.372.036.854.775.808, possibilitando que a coluna CodCli continuasse sendo utilizada respeitando essa nova limitação de valores.

Espero que tenha gostado e não deixem de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.

DESAFIO DO GORDO – The Column is 80 percent full

Galera,

Nesta edição do Desafio do Gordo quero que ajudem-me a identificar a causa deste warning em uma instância de SQL Server:

[WARNING] 2015-11-16 18:00:01.74 spid471 The column CodCli in Table [Cliente] on Database [DBTeste] is 80 percent full

Apenas para ajudá-los no diagnóstico, a coluna CodCli é do tipo INT e possui a propriedade IDENTITY ligada.

Espero que gostem e não deixem de inscrever-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço a todos.