Microsoft anuncia teclado com leitor de impressão digital


A Microsoft anunciou nesta semana um teclado com leitor de impressão digital integrado, o “Microsoft Modern Keyboard with Fingerprint ID“.

Compatível com o sistema de autenticação biométrica Windows Hello, o teclado suporta Bluetooth 4.0/4.1 e wireless com frequência de 2.4GHz e alcance de até 15 metros em local aberto e até 7 metros em escritórios.

O leitor de impressão digital no teclado é a tecla posicionada ao lado da tecla Alt.

De acordo com a Microsoft, o teclado é compatível com o Windows 8/8.1, Windows 10, Windows 10 Mobile, Android, macOS e iOS. El também vem com duas pilhas AAA recarregáveis.

O novo teclado com leitor de impressão digital já está em pré-venda na Microsoft Store por US$ 129,99 nos Estados Unidos. Ainda não foi confirmado se ele também será lançado por aqui.

Microsoft anuncia teclado com leitor de impressão digital

Vídeo apresentando o teclado com leitor de impressão digital:

Fontes e Direitos Autorais: Baboo.com – 16/06/2017 – 8:36 am.

Versões Preview do Windows Server começarão a ser disponibilizadas em breve


A Microsoft confirmou nesta semana no Windows Server Blog que as versões Preview do Windows Server começarão a ser disponibilizadas em breve via Windows Insider Program.

O Windows Server passou a fazer parte do Windows Insider Program em 11 de maio.

Novas versões Preview do Windows Server em breve

No dia 15 de junho a Microsoft anunciou que, assim como o Windows 10 e o Office 365 ProPlus, o Windows Server passará a receber duas grandes atualizações por ano.

Com isso as atualizações serão disponibilizadas durante a primavera norte-americana (entre março e junho) e uma durante o outono norte-americano (entre setembro e dezembro).

Versões Preview do Windows Server começarão a ser disponibilizadas em breve

O novo post da Microsoft sobre a disponibilidade das novas versões Preview do Windows Server em breve indica que os testes da primeira atualização, com lançamento entre setembro e dezembro de 2017, estão para começar.

Usuários e profissionais de TI interessados podem se registrar no Windows Insider Program através do link https://insider.windows.com/ForBusiness.

Fontes e Direitos Autorais: Microsoft – Windows Server Blog – 15/06/2017. https://blogs.technet.microsoft.com/windowsserver/2017/06/15/previews-for-windows-server-semi-annual-channel-releases-coming-soon/

 

Windows Server receberá duas grandes atualizações por ano


Assim como já ocorre com o Windows 10 e com o Office 365 ProPlus, o Windows Server passará a receber duas grandes atualizações por ano.

Com o lançamento de cada uma destas atualizações, o System Center Configuration Manager também será atualizado para oferecer suporte. No caso do Windows 10, a Microsoft informou em abril deste ano que ele receberá uma atualização em março e outra em setembro.

Já sobre o Windows Server, o novo ciclo de atualizações do sistema operacional agora indica que ele receberá uma grande atualização durante a primavera norte-americana (entre março e junho) e uma durante o outono norte-americano (entre setembro e dezembro).

A primeira grande atualização do Windows Server, que será lançada entre setembro e dezembro de 2017, não deve receber um nome específico como as do Windows 10, como Creators Update, por exemplo. Ao invés disso ela deverá ser conhecida apenas pelo seu número de versão – possivelmente 1709.

Também foi confirmado que o Server Core receberá duas grandes atualizações por ano.

Fontes e Direitos Autorais: ZDNet – 15/06/2017 – 16:04 GMT. http://www.zdnet.com/article/microsoft-to-deliver-two-windows-server-feature-updates-per-year-starting-this-fall/#ftag=RSSbaffb68

TechNet Virtual Lab: Office 365 Advanced Threat Protection


A Microsoft disponibilizou recentemente em sua página Laboratórios Virtuais TechNet o laboratório virtual Office 365 Advanced Threat Protection – Guia Interativo.

Os laboratórios virtuais permitem que usuários e profissionais de TI testem recursos dos sistemas operacionais e de outros produtos da Microsoft via nuvem como se estivessem usando seus próprios PCs.

Isto é útil para quem não quer perder tempo criando uma máquina virtual apenas para testar um recurso específico.

TechNet Virtual Lab: Office 365 Advanced Threat Protection – Guia Interativo

Para quem não sabe, o Office 365 Advanced Threat Protection oferece proteção em tempo real para email em ambientes corporativos. O serviço foi atualizado no início deste ano e ganhou novos recursos como URL Detonation e Dynamic Delivery.

De acordo com a Microsoft, o recurso URL Detonation ajuda a impedir que os usuários sejam comprometidos por arquivos oferecidos através de URLs maliciosas.

Quando o usuário recebe um email, o Advanced Threat Protection analisa as URLs na mensagem procurando por comportamento malicioso.

Se o usuário clicar no link durante a verificação, ele verá o alerta falando que a mensagem está sendo verificada. Se o link for detectado como malicioso, um novo alerta será exibido recomendando que o usuário não clique no link.

Os administradores podem configurar a política SafeLink para monitorar os cliques dos usuários. Isto é útil para casos onde eles burlam os alertas para acessar sites bloqueados pelo Advanced Threat Protection.

TechNet Virtual Lab: Office 365 Advanced Threat Protection
Já o recurso Dynamic Delivery do Office 365 Advanced Threat Protection permite que os usuários leiam as mensagens de email enquanto os anexos são verificados.

Durante a verificação, o anexo é substituído por um “placeholder” com a notificação indicando que a verificação do verdadeiro anexo está em andamento.

Se o usuário clicar neste “placeholder”, ele verá uma mensagem mostrando o progresso da verificação. Se o anexo for malicioso, o Office 365 Advanced Threat Protection notificará o usuário.

Neste laboratório virtual você verá como o Office 365 Office 365 Advanced Threat Protection pode ajudar a impedir que anexos maliciosos cheguem aos destinatários, proteger usuários contra links maliciosos e mais com recursos como os mencionados acima.

Confira o laboratório virtual clicando aqui e saiba mais sobre o serviço aqui.

Fontes e Direitos Autorais: Microsoft.com  https://products.office.com/en/exchange/online-email-threat-protection

Mais informações sobre o CShell do Windows 10


O site Windows Central divulgou nesta segunda-feira mais algumas informações sobre o CShell do Windows 10. Um vídeo mostrando uma versão preliminar também está disponível.

CShell do Windows 10

No início deste ano surgiram informações de que a Microsoft estava trabalhando em um novo “shell adaptável” para o Windows 10 que funcionará em PCs, tablet, smartphones, HoloLens e até mesmo no Xbox One.

O Shell do Windows 10 atual ainda não é um elemento completamente universal, ao contrário do subsistema OneCore e dos aplicativos baseados na Universal Windows Platform.

Os PCs e tablets compartilham o mesmo Shell graças ao Continuum, mas smartphones, HoloLens e Xbox One possuem versões individuais próprias que são mantidas e atualizadas separadamente.

Com futuras atualizações do Windows 10, a Microsoft pretende implementar um Shell único que se adaptará a diferentes plataformas e assim transformá-lo em um sistema completamente universal.

Conhecido internamente na empresa como “Composable Shell” ou “CShell”, este novo Shell do Windows poderá se adaptar a diferentes tipos de dispositivos de forma similar ao modo como o Continuum alterna entre o modo padrão e o modo tablet.

Embora não tenha sido mencionado pelo nome, o Composable Shell já apareceu publicamente em uma demonstração da Microsoft no ano passado. Nesta demonstração foi possível ver o modo Continuum do Windows 10 Mobile com um ambiente mais parecido com o do Windows 10 para PCs, ou seja, nela foi possível ver uma versão inicial do Composable Shell:

Mais informações sobre o CShell do Windows 10

Mais informações sobre o CShell do Windows 10

Uma versão preliminar do CShell do Windows 10 foi encontrada em um build interno da Microsoft que foi disponibilizado por engano por alguns minutos via Windows Insider Program.

No Windows 10 Mobile atual, a experiência do usuário com a tela inicial é diferente da oferecida na versão para desktops. Por exemplo, a versão para desktops incluir mais tamanhos para os blocos dinâmicos, menus de contexto e outras opções não presentes no Windows 10 Mobile.

Com o CShell do Windows 10, a situação é um pouco diferente. Com ele o usuário tem a mesma experiência no smartphone e no desktop, incluindo os menus de contexto e as outras opções:

A Central de Ações também é a mesma no PC e no smartphone com o CShell. Quando você desliza o dedo da parte superior para a inferior da telado smartphone, o design da Central de Ações é praticamente o mesmo da versão para desktop:

Outra mudança nesta versão preliminar do CShell do Windows 10 é o modo de visualização da tela inicial mostrado abaixo em um smartphone. Vale lembrar que nada disso é final e muita coisa ainda pode mudar:

Esta versão preliminar do CShell também introduz algumas melhorias no modo Continuum. Por exemplo, já é possível utilizar aplicativos em janelas que podem ser organizadas via Snap ou em diferentes áreas de trabalho virtuais como se o usuário estivesse no Windows 10 para desktops:

Fontes e Direitos Autorais:  Baboo.com –

Microsoft pode lançar novas versões do Windows 10 e do Windows Server 2016


De acordo com rumores recentes, a Microsoft pode estar planejando lançar novas versões do Windows 10 e do Windows Server 2016 ainda este ano.

Novas versões do Windows 10 e do Windows Server 2016

Referências ao Windows 10 Pro for Advanced PCs e Windows 10 Pro N for Advanced PCs e ao Windows Server 2016 ServerRdsh foram supostamente encontradas no 16212 do Windows 10, um build interno que foi liberado por engano por alguns minutos via Windows Insider Program.

Segundo os rumores, a Windows 10 Pro for Advanced PCs pode vir a se chamar Windows 10 Pro for Workstations. Um suposto documento vazado com o nome também apareceu na Web. Já a versão N seria voltada para o mercado europeu.

Rumor: Microsoft pode lançar novas versões do Windows 10 e do Windows Server 2016

De acordo com a suposta documentação, o novo Windows 10 deve ser voltado para o mercado corporativo e deverá suportar até quatro processadores e 6TB de memória RAM.

Pouco se sabe sobre a nova versão do Windows Server 2016, mas o ServerRdsh no nome é Remote Desktop Session Host.

É importante destacar que a Microsoft ainda não confirmou oficialmente as informações acima.

Fontes e Direitos Autorais: Baboo.com – 

Dica do Mês – Conhecendo e aplicando o uso de atualização de estatísticas incrementais


Muito boa tarde pessoal, salve, salve comunidade e amantes de banco de dados.

Tudo bem com vocês? Estou aqui mais uma vez em um novo post do meu blog na sessão Dica do Mês, hoje falando de um assunto que até alguns dias atrás eu sinceramente nunca havia feito uso, mas com base em um post publicado do Ahmad Yaseen no MSSQLTips.com, acabou me servindo como fonte de inspiração para elaborar e compartilhar este post com vocês.

Antes de começarmos a falar sobre o post de hoje, nada mais justo começar agradecendo como de costume a você está aqui neste momento acessando meu blog. Espero que possa ter encontrado o que precisa, bem como, esteja gostando do conteúdo publicado, fique a vontade para entrar em contato expressando suas opiniões e demais pensamentos.

Dando continuidade, vamos conhecer um recurso adicionado na versão 2014 do Microsoft SQL Server a partir do Service Pack 2 e mantido no Microsoft SQL Server 2016 SP1 conhecido como Estatísticas Incrementais ou Incremental Statistics, pode parecer estranho o nome, mas é exatamente isso que este recurso permite, realizar o processo de atualização de estatísticas de maneira incremental, ou para muitos incrementar o processo de atualização de estatísticas aplicadas aos nossos bancos de dados e seus respectivos objetos.

Parece ser coisa de louco isso, mas posso garantir que não é, absolutamente é algo totalmente viável e aplicável a qualquer ambiente que se faça uso do Microsoft SQL Server em conjunto com as funções e scheme de particionamento de dados.

E ai esta curioso para saber um pouco sobre este recurso?

Eu estou, sendo assim, vamos em frente, seja bem vindo ao post Dica do Mês – Conhecendo e aplicando o uso de atualização de estatísticas incrementais.

Seguindo….


Introdução

O otimizador de consultas do Microsoft SQL Server depende fortemente das estatísticas na geração a execução de plano de consulta mais eficiente. Estas estatísticas fornecem ao otimizador a distribuição dos valores de colunas na tabela e o número de linhas, também chamada a cardinalidade que resultará da consulta.

A ausência destas estatísticas, ou a existência de estatísticas desatualizadas, proporciona a ocorrência de querys consideradas lentas, neste sentido, o otimizador de consulta “query optimizer” acaba sendo obrigado a utilizar estatísticas imprecisas para criar o plano de execução, que pode ser considerado um plano não ideal para executar a consulta neste caso.

O SQL Server geralmente faz o seu trabalho em manter estas estatísticas atualizadas, mas como um administrador de banco de dados, você deve fazer seu trabalho, em alguns casos, atualizando as estatísticas manualmente. Atualizar estatísticas manualmente em tabelas grandes pode ser como um grande desafio, bem como, em tabelas pequenas pode-se imaginar que a estatística já esteja atualizada, o que em alguns cenários isso acaba não ocorrendo.

Um dos cenários mais impactados pelo uso de estatísticas desatualizadas ou atualizadas parcialmente são as tabelas particionadas. Como destacado anteriormente através do uso das funções de particionamento de dados introduzido no Microsoft SQL Server 2008, temos a capacidade de distribuir nossos dados em partições “pequenos fatias de armazenamento de dados” que nos possibilitar distribuir respectivos valores com base em uma função que análise e identifica o local de armazenamento do mesmo.

Para este tipo de ambiente, o uso de estatísticas como mecanismo para auxiliar no obtenção mais rápida do dado, pode apresentar simultaneamente o papel de herói como também de vilão, isso pode parecer meio confusão, mas não é! Basicamente quando trabalhamos com estatísticas acreditamos que sempre teremos todas as informações armazenados no histograma atualizadas de forma automática de maneira mais precisa possível, algo que não acontece exatamente desta maneira quando trabalhando com particionamento de dados.

Uma das situações mais comuns quando se uso particionamento de dados é a possibilidade de ocorrer a atualização de estatísticas de maneira parcial, ou seja, apena um partição de todo estrutura de partições acaba tendo suas informações de estatísticas atualizadas, o que poderá provocar uma alteração no plano de execução ou a possibilidade de criação de um plano incoerente.

Sabendo desta possibilidade e comportamento, o time de engenheiros e desenvolvedores do Microsoft SQL Server, implementou a partir da versão 2014 SP1 as Estatísticas Incrementais, funcionalidade que nos permite justamente contornar este tipo de situação.

Estatísticas Incrementais – Incremental Statistics

As estatísticas Incrementais, ajudam na atualização de estatísticas para apenas a partição ou partições que você escolher. Em vez de analisar e varrer a tabela inteira para atualizar as estatísticas, a partição selecionada será verificada somente para a atualização, reduzindo o tempo necessário para executar a operação de atualização de estatísticas, atualizando-se apenas a partição modificada.

O outro ponto importante é que a porcentagem de alterações de dados necessário para acionar a atualização automática de estatísticas, sendo este o valor 20% de linhas alteradas, o que proporcionará o uso de atualização de estatísticas no nível da partição, comportamento que não era permitido anteriormente.

Muito legal este novo recurso e principalmente o comportamento do Microsoft SQL Server, agora que já conhecemos conceitualmente como as estatísticas incrementais funcionam, chegou a hora de colocar as mãos no teclado e começar a conhecer de maneira prática esta funcionalidade.

Preparando o ambiente

Para entender a atualizar as estatísticas incrementais, vamos preparar um banco de dados de teste com uma tabela particionada. Começamos com a criação de um novo banco de dados denominado IncrementalStatistics, formado por quatro novos grupos de arquivos além de grupo de arquivos primário padrão, para tal vamos utilizar o Bloco de Código 1 apresentado a seguir:

— Bloco de Código 1 —

— Criando o Banco de Dados IncrementalStatistics —
Create Database IncrementalStatistics
Go
— Adicionando os Filegroups —
Alter Database IncrementalStatistics
Add Filegroup IncrementalStatisticsGrupo1
Go
Alter Database IncrementalStatistics
Add Filegroup IncrementalStatisticsGrupo2
Go
Alter Database IncrementalStatistics
Add Filegroup IncrementalStatisticsGrupo3
Go
Alter Database IncrementalStatistics
Add Filegroup IncrementalStatisticsGrupo4
Go

 

— Adicionando os Arquivos aos seus respectivos Filegroups —

Alter Database IncrementalStatistics
Add File (Name = N’IncrementalStatisticsGrupo1′,
FileName = N’S:\MSSQL-2016\Data\Arquivo-Grupo1-Data.ndf’,
Size = 4096KB,
FileGrowth =1024KB) To Filegroup IncrementalStatisticsGrupo1
Go

Alter Database IncrementalStatistics
Add File (Name = N’IncrementalStatisticsGrupo2′,
FileName = N’S:\MSSQL-2016\Data\Arquivo-Grupo2-Data.ndf’,
Size = 4096KB,
FileGrowth =1024KB) To Filegroup IncrementalStatisticsGrupo2
Go

Alter Database IncrementalStatistics
Add File (Name = N’IncrementalStatisticsGrupo3′,
FileName = N’S:\MSSQL-2016\Data\Arquivo-Grupo3-Data.ndf’,
Size = 4096KB,
FileGrowth =1024KB) To Filegroup IncrementalStatisticsGrupo3
Go

Alter Database IncrementalStatistics
Add File (Name = N’IncrementalStatisticsGrupo4′,
FileName = N’S:\MSSQL-2016\Data\Arquivo-Grupo4-Data.ndf’,
Size = 4096KB,
FileGrowth =1024KB) To Filegroup IncrementalStatisticsGrupo4
Go

Uma vez que o banco de dados é criado com os novos grupos de arquivos e arquivos de dados, precisamos prepará-lo para hospedar a tabela particionada. Nosso próximo passo consiste na criação da função particionada PartitionFunctionIncrementalStatistics que classifica os dados de acordo com os quatro trimestres do ano, sendo assim, vamos utilizar o Bloco de Código 2 apresentado abaixo:

— Bloco de Código 2 —

— Criando a Partition Function PartitionFunctionIncrementalStatistics —
USE IncrementalStatistics
GO

CREATE PARTITION FUNCTION PartitionFunctionIncrementalStatistics (Int)
AS
RANGE RIGHT FOR VALUES
(20171, 20172, 20173, 20174)
Go

Note que nossa PartitionFunctionIncrementalStatistics é composta por quatro partições de valores subdivididos da seguinte forma: 

  • 20171 – Valor que representa o Primeiro Quartil;
  • 20172 – Valor que representa o Segundo Quartil;
  • 20173 – Valor que representa o Terceiro Quartil do Ano; e
  • 20174 – Valor que representa o Quarto Quartil do Ano.

    Talvez você ainda não esteja entendendo o porque estamos fazendo uso deste tipo de implementação, tenha calma no decorrer do post tudo vai ficar mais claro e você terá total noção do porquê estamos utilizando este recurso.

Continuando com a nossa longa caminhada, você deve saber que para se trabalhar com particionamento de dados devemos além de criar uma Partition Function devemos obrigatoriamente criar um Partition Scheme,  que estará vinculado lógicamente a nossa partition function, sendo assim, este é nosso próximo passo, fazendo uso do Bloco de Código 3:

— Bloco de Código 3 —

— Criando o Partition Scheme PartitionSchemeIncrementalStatistics —
CREATE PARTITION SCHEME PartitionSchemeIncrementalStatistics AS
PARTITION PartitionFunctionIncrementalStatistics
TO
(
IncrementalStatisticsGrupo1,
IncrementalStatisticsGrupo2,
IncrementalStatisticsGrupo3,
IncrementalStatisticsGrupo4,
[PRIMARY])
Go

Esta quase tudo pronto para nossa brincadeira, seguiremos com a criação na nossa tabela TableIncrementalStatistics, este é um ponto importante do nosso ambiente, onde estamos fazendo uso da tabela particionada para ilustrar como as estatísticas incrementais vão realizar o seu papel.

TableIncrementalStatistics será composta por algumas colunas, dentre as quais a coluna Quartil, responsável em armazenar o valor do quartil de acordo com o ano informado, como também, é através desta coluna que estaremos realizando o particionamento dos dados. Para isso utilizaremos o Bloco de Código 4 a seguir:

— Bloco de Código 4 —

— Criando a Tabela TableIncrementalStatistics —

CREATE TABLE TableIncrementalStatistics
(ID Int Null,
Acao NVarchar(40) Default NewID(),
Data DateTime Null,
Quartil  AS (datepart(year,[Data])*(10)+datepart(quarter,[Data])) PERSISTED
) ON PartitionSchemeIncrementalStatistics (Quartil)
Go

Ótimo, toda estrutura para armazenar nossos dados já esta pronta, bem como, a lógica para distribuir e particionar os dados que serão inseridos na tabela TableIncrementalStatistics.

Ufa, ainda temos um bom caminho pela frente, mas já avançamos bastante, agora temos realizar uma alteração nas configurações do nosso banco de dados IncrementalStatistics, sendo esta necessária para podermos aplicara o uso de estatísticas incrementais, estou me referindo a opção Auto Create Statistics muito conhecida, onde vamos alterar o seu valor default para Incremental = On, conforme apresenta o Bloco de Código 5 abaixo:

— Bloco de Código 5 —

— Habilitando o uso de Incremental Statistics —
Alter Database IncrementalStatistics
Set Auto_Create_Statistics On (INCREMENTAL = On)
Go

O próximo passo consiste na criação do índice que iremos utilizar em na TableIncrementalStatistics pois você deve ter notado que realizamos a criação da tabela sem a definição de uma chave primária, desta maneira  utilizamos o Bloco de Código 6 para criação dos respectivo índice em seguida confirmamos se esta tabela esta fazendo uso das estatísticas incrementais habilitada no bloco de código 5:

— Bloco de Código 6 —

— Criação do índice Clustered —
Create Clustered Index Ind_TableIncrementalStatistics_ID
On [TableIncrementalStatistics] (ID)
GO

— Confirmando se as estatísticas incrementais está habilita —
SELECT
OBJECT_NAME(object_id) TableName
,name
,is_incremental
,stats_id
FROM sys.stats
WHERE name = ‘Ind_TableIncrementalStatistics_ID’
Go

Figura 1 – Confirmando o uso das estatísticas incrementais no índice Ind_TableIncrementalStatistics_ID.

Observação: Note que ao executar o Select realizado na visão de sistema sys.stats a coluna Is_Incremental deverá retornar e apresentar o valor igual á 1, isso indica que TableIncrementalStatistics esta neste momento fazendo uso das estatísticas incrementais.

Muito bem, chegou a hora de popular nossas tabelas, realizaremos a inserção de 8.000 linhas de registros, sendo estes particionados em grupos de 2.000 registros para cada partição que forma e compõem a estrutura da nossa tabela. Vamos então utilizar o Bloco de Código 7 apresentado na sequência:

— Bloco de Código 7 —

— Inserindo os dados na TableIncrementalStatistics —
Insert Into TableIncrementalStatistics (ID, Data)
Values (1, ‘2017-11-22’)
Go 2000

Insert Into TableIncrementalStatistics (ID, Data)
Values (2, ‘2017-06-05’)
Go 2000

Insert Into TableIncrementalStatistics (ID, Data)
Values (3, ‘2017-01-25’)
Go 2000

Insert Into TableIncrementalStatistics (ID, Data)
Values (4, ‘2017-08-13’)
Go 2000

Após a inserção das 8.000 linhas de registros, vamos confirmar a distribuição dos dados através do Bloco de Código 8 declarado abaixo, conforme ilustra o resultado da Figura 2:

— Bloco de Código 8 —

— Consultando a distribuição e particionamento dos dados —
Select partition_number, rows
From sys.partitions
Where OBJECT_NAME(OBJECT_ID)=’TableIncrementalStatistics’
Go

Figura 2 – Distribuição dos dados na tabela TableIncrementalStatistics de acordo com o valor e partição.

Estamos chegando no final, agora vamos realizar algumas manipulações no conjunto de dados armazenados na tabela TableIncrementalStatistics afim de forçarmos o processos de atualização das estatísticas, procedimento que vai nos ajudar a entender o processo de incremento na atualização das estatísticas de armazenamento e processamento utilizados pelo Microsoft SQL quando solicitado acesso aos dados armazenados em nossa table, para tal operação vamos utilizar o Bloco de Código 9:

— Bloco de Código 9 —

— Consultando dados na TableIncrementalStatistics —
Select Id, Acao, Data, Quartil From TableIncrementalStatistics
Where ID = 1
Go

Select Id, Acao, Data, Quartil From TableIncrementalStatistics
Where ID >= 2
Go

Select Id, Acao, Data, Quartil From TableIncrementalStatistics
Where ID <> 3
Go

Pronto, realizamos algumas operações de Select com intuito de forçar a criação de novas estatísticas, e principalmente a atualização das estatísticas atuais. Por enquanto nada de diferente, na sequência vamos consultar as informações sobre as estatísticas relacionadas a nossa tabela, fazendo uso do Bloco de Código 10 e analisando o resultado apresentado através da Figura 3:

— Bloco de Código 10 —

— Consultando as informações sobre as estatísticas da tabela TableIncrementalStatistics —
Select object_id, stats_id , last_updated , rows , rows_sampled , steps
From sys.dm_db_stats_properties(OBJECT_ID(‘[TableIncrementalStatistics]’),1);
Go

Figura 3 – Dados relacionados a estatísticas da TableIncrementalStatistics.

Como você pode ver, o DMF sys.dm_db_stats_properties mostra-nos que as estatísticas foram atualizadas na data do dia 23/05/2017 ás 16:55, para a tabela que tem 8000 linhas.

Neste momento, podemos nos perguntar: Qual partição da tabela inclui as estatísticas atualizadas?

A resposta para esta sua pergunta vem justamente atráves do uso nova DMF sys.dm_db_incremental_stats_properties já apresentada aqui no meu blog. Sendo esta DMF responsável em apresentar as propriedades estatísticas incremental, recuperando as mesma informação obtida a partir do DMF sys.dm_db_stats_properties, também super conhecida e apresentada no meu blog. Neste caso a sys.dm_db_stats_properties vai apresentar dados de  cada partição da tabela particionada, fornecendo-lhe com os mesmos parâmetros; a identificação do objeto e a identificação de estatísticas.

Caminhando mais um pouco, estamos próximos do final, vamos então formar o SQL Server a justamente realizar o processo de atualização das estatísticas para nossa partição de número 3, realizando o processo de exclusão de 1.500 linhas de registros, em seguida consultando nossa TableIncrementalStatistics, conforme apresenta o Bloco de Código 11:

— Bloco de Código 11 —

— Excluíndo 1.500 linhas —
Delete Top (1500) From TableIncrementalStatistics
Where ID = 2
Go

— Consultando os dados —
Select Id, Acao, Data, Quartil From TableIncrementalStatistics
Where ID <> 4
Go

Agora vamos novamente consultar os dados estatísticas, sendo assim repita a execução do Bloco de Código 10, observe que você deverá receber um conjunto de valores similares a Figura 4, onde a coluna Last_Updated deverá apresentar a data e hora da última atualização:

Figura 4 – Data e hora da última atualização da estatística.

Ufa, estamos quase lá, agora chegou a hora da verdade, hora de comprovar se realmente o SQL Server esta fazendo as coisas certas, vamos fazer uso da DMF sys.dm_incremental_stats_properties para validar se a estatística da partição 3 foi atualizada, o resultado pode ser analisado através da Figura 5. Para isso vamos utilizar o Bloco de Código 12 a seguir:

— Bloco de Código 12 —

— Consultando as informações sobre as estatísticas incrementais —
Select object_id, stats_id,
partition_number,
last_updated,
rows, rows_sampled,
steps
From sys.dm_db_incremental_stats_properties(OBJECT_ID(‘TableIncrementalStatistics’),1)
Go

Figura 5 – Informações sobre as atualizações de estatísticas, onde a partição 3 foi atualizada de maneira independente das demais.

Sensacional, conseguimos, muito legal este recurso, como sempre o Microsoft SQL Server nos surpreende com a sua capacidade e potencialidade de recursos.

Referências

Post Anteriores

https://pedrogalvaojunior.wordpress.com/2017/04/13/dica-do-mes-microsoft-sql-server-identificando-as-transacoes-que-estao-utilizando-o-transact-log/

https://pedrogalvaojunior.wordpress.com/2017/03/01/dica-do-mes-microsoft-sql-server-2016-sp1-novo-argumento-use-hint-disponivel-para-query-hints/

https://pedrogalvaojunior.wordpress.com/2017/01/16/dica-do-mes-conhecendo-a-nova-dmf-sys-dm_exec_input_buffer-no-microsoft-sql-server-2016/

https://pedrogalvaojunior.wordpress.com/2016/11/28/dica-do-mes-sql-server-2016-sp1-comando-create-or-alter/

https://pedrogalvaojunior.wordpress.com/2016/10/24/dica-do-mes-sql-server-2016-obtendo-informacoes-sobre-o-cache-de-execucao-de-funcoes/

Conclusão

Administrar, gerenciar, cuidar e prover um ambiente sempre no melhor estado possível não é uma das atividades mais tranquilas e simples desempenhadas por profissionais ou administradores de banco de dados, mas também não pode ser considerada um “bicho de sete cabeças” ou uma “caixa preta” ainda mais quando este servidor de banco de dados utiliza o Microsoft SQL Server.

Neste post você pode conhecer um pouco mais de como o Microsoft SQL Server trabalha de maneira árdua na busca da melhor maneira para encontrar e retornar os dados solicitados em nossas transações. Ao longo de novas versões o produto esta cada vez mais maduro, confiável e inteligente, sempre nos surpreendendo com sua capacidade.

Algo que não poderia ser diferente no uso das Estatísticas Incrementais, recurso que nos permite adotar uma nova maneira de atualização dos dados internos relacionados ao armazenamento das nossas informações, mas principalmente prover um auxílio para próprio Database Engine mas atividades para identificar o melhor caminho para se processar uma query.

Agradecimentos

Mais uma vez obrigado por sua visita, agradeço sua atenção, fique a vontade para enviar suas críticas, sugestões, observações e comentários.

Um forte abraço, nos encontramos logo logo…

Valeu….