Script Challenge – 15 – A resposta….

Realizando Auditoria em tempo real (In Live) no Microsoft SQL Server


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 15, sendo este respectivamente o terceiro post após o retorno desta desafiadora sessão 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 anteriormente. 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 15…


Script Challenge 15

Falando do desafio de número 15, o mesmo foi publicado no mês de fevereiro de 2019, período de data em que praticamente todos nós estamos começando a iniciar nossas atividades profissionais e principalmente acadêmicas.

Começo de ano não é fácil, volta as aulas, correria de comprar material escolar, renovação de mensalidades, matrículas, IPVA, IPTU, tanta conta para pagar que as coisas acabam se tornando um grande furação em nossas vidas e precisamos de alguma maneira, anotar, gerenciar ou auditar tudo o que estamos fazendo.

Pois bem, o Script Challenge 15 possui um pouco relação ou conexão com toda esta loucura, não necessariamente com a volta as volta as aulas, ou impostos que devemos pagar.

Na verdade, sabemos que existem determinadas situações, ações, procedimentos e demais atividades que se não cumprimos da maneira que estava preestabelecida acabamos de alguma forma sendo notificados ou até mesmo penalizados, pensando justamente desta forma, o Script Challenge 15 se relaciona.

Continuando nossa história, quero lhe perguntar: E ai já matou a charada? Acho que ainda não! Não é mesmo?

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 15.

Bom chegou a hora de revelar o que exatamente este bloco de código se propõem a fazer, chegou o momento de revelar e desvendar este desafio. A seguir apresento a resposta para o Script Challenge 15 e o todo bloco de código disponível para você utilizar em seus ambientes de trabalho ou estudos.

A resposta

Como você pode ter percebido, no decorrer deste post e também no post de lançamento, procurei de uma forma bastante simples mas não explícita exibir ao longo do texto, pequenas dicas que poderiam ajudar, nortear e quem sabe indicar uma possível resposta ou solução para o desafio.

Falando mais diretamente, a resposta para o Script Challenge 15, esta totalmente relacionada as nossas atividades diárias, mas não no mundo real, mas sim no mundo virtual, estou me referindo a chamada auditoria, palavrinha que para muitos chega a dar calafrios. Não é mesmo?

Mas se mesmo assim, você ainda não conseguiu adivinhar ou até mesmo pode estar se perguntando: Qual a relação do Script Challenge – 15 tem haver com auditoria? A resposta para seu questionamento é 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 deve de alguma forma ser monitorada, auditada, controlada, afim de gerar evidência do que foi feito e por quem foi feito, como uma forma de nos proteger e si proteger.

Então a resposta para o Script Challenge 15 se relaciona com a possibilidade que o script apresenta em nos ajudar a identificar tudo o que esta sendo acesso, manipulado e processado, por quem, como, quando, onde e de que forma ao se conectar em um servidor ou instância de banco de dados Microsoft SQL Server, isso tudo em tempo real, ou como gostam de dizer Real Time.

De uma forma muito simples e direta, esta é a resposta, auditoria em tempo real. Abaixo apresento o script original que ilustra esta capacidade que o Microsoft SQL Server em conjunto com suas visões e funções de gerenciamento dinâmico possui:

— Script Challenge 15 – A resposta – Realizando Auditoria em tempo real (In Live) —

Use Master
Go

SELECT ser.session_id As ‘SessionID’,
ssp.ecid,
DB_NAME(ssp.dbid) As ‘DatabaseName’,
ssp.nt_username as ‘User’,
ser.status As ‘Status’,
ser.wait_type As ‘Wait’,
SUBSTRING (sqt.text,  ser.statement_start_offset/2,
(CASE WHEN
ser.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), sqt.text)) * 2
ELSE ser.statement_end_offset
END – ser.statement_start_offset)/2) As ‘Individual Query’,
sqt.text As ‘Parent Query’,
ssp.program_name As ‘ProgramName’,
ssp.hostname,
ssp.nt_domain As ‘NetworkDomain’,
ser.start_time
FROM sys.dm_exec_requests ser INNER JOIN sys.sysprocesses ssp
On ser.session_id = ssp.spid
CROSS APPLY sys.dm_exec_sql_text(ser.sql_handle)as sqt
WHERE ser.session_Id > 50
AND ser.session_Id NOT IN (@@SPID)
ORDER BY SessionID, ssp.ecid
Go

Então, agora você deve ter gostado deste desafio, não é verdade? Ter a capacidade de identificar, monitorar e registrar tudo o que esta sendo acessado ou manipulado em tempo real, com certeza é algo útil e de extrema importância para qualquer empresa.

A Figura 2 apresentada abaixo, ilustra o conjunto de dados retornados após a execução do Script Challenge – 15:
Figura 2 – Informações coletadas em tempo real, dentre elas SessionID, DatabaseName e ProgramName.

Dentre o conjunto de colunas retornadas pelo Script Challenge 15, destaco algumas:

  • User – Apresenta o nome do usuário que esta conectado e processando a query;
  • Status – Apresenta o status em tempo real da execução, waiting ou suspended da query;
  • Wait – Apresenta qual é o Wait Types utilizado pela query;
  • Individual Query – Apresenta se a query processada esta sendo executada de forma individual, em conjunta ou até mesmo se ele é uma sequência de execuções de blocos de código; e
  • ProgramName – Apresenta o nome do programa, aplicações ou software que esta disparando a execução da query.

Muito bom, sensacional, conseguimos, chegamos ao final, esta é a resposta para o Script Challenge 15, 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 sua participação através de uma enquete contendo algumas opções de respostas que poderiam estar relacionadas com o Script Challenge 15. A seguir apresento o resultado desta enquete:

A opção mais votada com 44% dos votos é justamente a resposta correta para este desafio: ” O bloco de código apresentado se relacionado com a possibilidade de realizar o monitoramento de sessões e programas que solicitaram dados em tempo real ao SQL Server.”

Referências

Posts anteriores

Caso esta seja a primeira vez que você acessa um post desta sessão, fico muito feliz e aproveito para compartilhar os posts mais recentes:

https://pedrogalvaojunior.wordpress.com/2019/02/13/script-challenge-2019-post-15/

https://pedrogalvaojunior.wordpress.com/2018/10/06/script-challenge-14-a-resposta/

https://pedrogalvaojunior.wordpress.com/2018/06/29/script-challenge-2018-post-14/

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 outubro de 2019 em mais um post da sessão Script Challenge.

Até mais….

Microsoft libera nova preview do SQL Server 2019 denominada 2.4


Ontem a Microsoft através do seu time MSSQLTiger, disponibilizou a nova versão preview da próxima versão do Microsoft SQL Server 2019.

Este novo preview foi batizado de SQL Server 2019 2.4 (quinta versão), vale ressaltar que nos últimos meses a Microsoft vem trabalhando fortemente para liberação de novas versões preliminares.

Novidades

Um dos destaques desta nova versão preliminar faz referência a integração do SQL Server com o Apache Spark™ e o HDFS com o SQL Server, criando assim  uma nova plataforma de dados unificada, que possibilita um grande salto no produto relacionado com os novos padrões de dados e processamento em larga escala.

Segundo informações fornecidas pela Microsoft, 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 (relacionadas a GDPR e LGPD), melhor desempenho em hardware moderno e alta disponibilidade em Windows, Linux e contêineres.

A Figura 1 abaixo ilustra a página inicial do website da Microsoft dedicado ao Microsoft SQL Server 2019:

Figura 1 – Introdução ao Microsoft SQL Server 2019.

Melhorias

Esta versão inclui melhorias de versões CTP anteriores para corrigir bugs, melhorar a segurança e otimizar o desempenho.

Além disso, os seguintes recursos são adicionados ou aprimorados para SQL Server 2019 pré-visualização CTP 2.4:

    • Cluster de grande volume de dados
      • Orientação na GPU suporte para a execução de profunda aprendizagem com TensorFlow no Spark.
      • Atualização em tempo real para Spark 2.4.
    • Mecanismo de banco de dados
      • Novo evento estendido.query_post_execution_plan_profile
      • Nova DMF retorna o equivalente o último plano de execução real conhecido para a maioria das consultas.sys.dm_exec_query_plan_stats
      • Criptografia de dados transparente (TDE) varredura – suspender e continuar.
    • SQL Server Analysis Services
      • Relacionamentos muitos-para-muitos em modelos tabulares.
      • Configurações de propriedade para a gerenciamento de recursos.

Download

Dentre as opções disponíveis, você poderá optar tanto para rodar em ambientes físicos como Windows e Linux ou virtualizados através de máquinas virtuais ou containers, conforme Figura 2 abaixo ilustra:

Figura 2 – Plataformas para download disponíveis para versão 2.3 do Microsoft SQL Server 2019.

O Microsoft Server 2019 Preview 2.4 para Windows está disponível em arquivos ISO, arquivo .cab para os seguintes idiomas:

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

Saiba mais sobre o SQL Server 2019

Caso você queria saber mais sobre esta nova versão do Microsoft SQL Server e seus principais recursos, selecione um dos links abaixo:

https://info.microsoft.com/ww-landing-SQLDB-Microsoft-SQL-Server-WhitePaper.html

http://download.microsoft.com/download/8/B/6/8B643729-6224-4ECC-8C50-3292B8156F0E/SQL_Server_2019_Transform-Data_into_Insights_Infographic_EN_US.pdf

http://download.microsoft.com/download/D/2/5/D2519504-0ACD-4CD7-9C34-AB85D5824F34/SQL_Server_2019_Top_10_Reasons_to_Choose_Infographic_EN_US.pdf

https://info.microsoft.com/ww-landing-intro-sql-server-2019.html

Fontes e Direitos Autorais: Microsoft.com – SQL Server BlogSQL Server Team – 27/03/2019.
Leia na integra acessando: https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-ver15?view=sql-server-ver15#ctp-24

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 

Como você pode ter percebido, no decorrer deste post e também no post de lançamento, procurei de uma forma bastante simples mas não explícita exibir ao longo do texto, pequenas dicas que poderiam ajudar, nortear e quem sabe indicar uma possível resposta ou solução para o desafio.

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, calma que eu já vou te responder.

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: “A 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…

Microsoft SQL Server 2012 SP4 liberado


Anunciado no final de junho pela Microsoft, o SQL Server 2012 SP4 (Service Pack 4) foi disponibilizado para download nesta semana pela empresa.

O Feature Pack e a versão Express com o SP4 também estão disponíveis.

SQL Server 2012 SP4

De acordo com a Microsoft, o SQL Server 2012 SP4 será o último Service Pack para a versão 2012 do SQL Server e além de ser uma coleção de hotfixes, ele também traz mais de 20 melhorias com foco na performance, escalabilidade e diagnóstico com base no feedback de clientes e da comunidade.

Mais especificamente, o Service Pack 4 inclui:

– Todas as correções e atualizações cumulativas para o SQL Server 2012.

– Melhorias na performance e escalabilidade.

– Recursos de monitoramento adicionais através de melhorias no DMV, Extended Events e Query Plans.

– Melhorias com base no feedback da comunidade.

– Melhorias introduzidas originalmente pelo SQL Server 2014 SP2 e SQL Server 2016 SP1.

Faça o download do SQL Server 2012 SP4

O SQL Server 2012 SP4 está disponível para download através deste link. Ele pode ser usado para atualizar instalações existentes do SQL Server 2012.

A versão Express, que é gratuita, já com o SP4 está disponível para download aqui e o Feature Pack está disponível para download aqui.

O Service Pack está disponível para download no centro de download da Microsoft e também será disponibilizado na Galeria de imagens Azure, MSDN, fonte MBS/Partner e VLSC nas próximas semanas. Como parte do nosso compromisso contínuo com a excelência de software para nossos clientes, essa atualização está disponível para todos os clientes com implantações do SQL Server 2012 existentes.

Para maiores informações acesse:

SQL Server 2012 SP4
SQL Server 2012 SP4 Feature Pack
SQL Server 2012 Service Pack 4 Release Information

Fontes e Direitos Autorais: MSSQL Tiger Team – SQL Server Engineering Team – 05/10/2017 – https://blogs.msdn.microsoft.com/sql_server_team/sql-server-2012-service-pack-4-sp4-is-now-available/

#09 – Para que serve


Boa noite pessoal!!! Salve galera….

 

Tudo bem? Como passaram os últimos dias?

Graças a deus continuo forte na minha batalha profissional e acadêmica, como eu sempre falo para meus alunos, a vida é uma roda gigante e não podemos deixar ela parar muito menos perder a chance de curtir e aprender com cada momento.

Seguindo esta onda de oportunidades, estou retornando com mais uma post dedicado a sessão Para que serve, e conforme prometido hoje vamos finalizar o assunto de índices hipotéticos apresentado inicialmente no post: https://pedrogalvaojunior.wordpress.com/2016/08/06/07-para-que-serve/

Neste post vamos entender como o comando DBCC Autopilot pode influenciar o database engine e seus elementos execution plan e query optimizer na execução de nossas consultas, então vamos nessa galera…..


Começa agora o #09 – Para que serve – Índices Hipotéticos – Final.

 

Conforme apresentado nos posts anteriores o conceito de índices hipotéticos é uma técnica antiga, mas pouco conhecida na área de banco de dados. Para muitos profissionais da área este tipo de recurso acaba sendo algo obscuro e de pouco compreensão, por outro lado outros profissionais destacam como sendo como um recurso que permite simular a existência de um índice de forma lógica. Como em qualquer área profissional ou acadêmica sempre vai existir os dois lados da moeda e cabe a cada um de nós procurar entender, respeitar e conhecer estas opiniões.

Seguindo em frente, vamos dar continuidade em nosso estudo, fazendo uso da estrutura criada anteriormente no post: https://pedrogalvaojunior.wordpress.com/2016/09/03/08-para-que-serve/

Como você pode ter verificado, criamos o banco de dados HypotheticalDB e dentro dele os seguintes objetos apresentados na Figura 1:

hypotheticaldb-figura1

Figura 1 – Relação de objetos criados no banco de dados HypotheticalDB.

Podemos observar a existência dos três índices hipotéticos criados anteriormente para tabela ClientesCategorias, bem como, o código da tabela ClientesCategorias definido no valor: 597577167. Anote bem este código post nos próximos passos vamos fazer uso do mesmo.

Agora que já relembramos um pouco do que foi feito anteriormente em relação ao nosso ambiente, podemos continuar a fazer uso dos índices hipotéticos em nosso ambiente, onde neste momento vamos fazer com que o Microsoft SQL Server realize o uso deste recurso de forma empírica na execução da nossa query, para tal iremos utilizar o comando DBCC AutoPilot, caso você ainda não conheça ou não se lembre deste comando o mesmo foi apresentada de maneira detalhada no post: https://pedrogalvaojunior.wordpress.com/2016/08/06/07-para-que-serve/

Então mãos no teclado, chegou a hora de utilizarmos o comando DBCC AutoPilot fazendo uso do bloco de código 1, mas antes de teclar F5, clique no botão “Include Actual Execution Plan” ou tecle Ctrl+M para ativar o mesmo. Para que você possa entender o que será executado neste bloco de código e qual será o resultado apresentado é obrigatório que o plano de execução se encontre ativado.

Agora que você já realizou este procedimento, pode dar continuidade e executar o bloco de código 1 apresentado abaixo:

— Bloco de Código – Utilizando o DBCC AutoPilot forçando o uso do índice clusterizado IND_ClientesCategorias_Clusterizado_CodigoComEstatisticas –

Use HypotheticalDB

Go

 

DBCC AUTOPILOT (5, 5, 0, 0, 0) – Ativando o commando DBCC AutoPilot para iniciar uma nova sessão limpando o buffer de comando executados anteriormente —

 

DBCC AUTOPILOT (6,5,597577167,4) – Utilizando o commando DBCC AutoPilot orientado no uso exclusive de índices clusterizado —

GO

 

SET AUTOPILOT ON — Ativando a diretiva —

Go

 

Select C.Codigo,

Cc.Codigo As ‘Categoria do Cliente’,

C.Nome,

C.Endereco,

C.Estado,

C.DataUltimaCompra

From Clientes C Inner Join ClientesCategorias CC

On C.CodigoCategoria = CC.Codigo

Where C.Estado = ‘SP’

Go

 

SET AUTOPILOT OFF — Desativando a diretiva —

GO

 

Acredito que tudo deva ter ocorrido normalmente e você tenha conseguido realizar a execução do bloco de código 1 apresentado acima, neste momento o Management Studio apresentou em sua guia denominada execution plan o conjunto de operadores similares aos apresentados na Figura 2 a seguir:

hypotheticaldb-figura2

Figura 2 – Resultado da execução do bloco de código 1.

 

Note que o plano de execução nos apresenta dois operados do tipo Clustered Index Seek, respeitando a ordem de execução, temos o segundo operador com o custo de 51% de processamento apontando para o nosso índice clusterizado IND_ClientesCategorias_Clusterizado_CodigoComEstatisticas, neste momento você pode estar se perguntando.

Como o Database Engine em conjunto com o Query Optimizer e Execution Plan identificou a existência deste recurso sendo que o mesmo é algo hipotético, algo que somente existe de forma lógica, a resposta pode ser encontrada justamente na maneira que o comando DBCC AutoPilot foi declarado e posteriormente executado, onde temos o seguinte conjunto de valores passados como parâmetros de entrada:

PARÂMETRO DESCRIÇÃO VALOR DECLARADO
TypeID TypeID = 6: Usar apenas índices clusterizados 6
DbID ID do Banco de Dados 6 – HypotheticalDB
TabID Id da Tabela a ser utilizada 597577167
Indid Id do índice a ser utilizado 4

Foi através deste conjunto de valores apresentado no DBCC AutoPilot e posteriormente reconhecido e interpretados pelo database engine que o Query Optimizer e Execution Plan fizeram uso do nosso índice clusterizado.

Não é algo fantástico, realmente uma capacidade de análise e reconhecimento de recursos fora do comum, realmente o Microsoft SQL Server é um produto acima de qualquer suspeita, um software surpreendente.

Para finalizar vamos agora forçar o uso do nosso índice nonclustered IND_ClientesCategorias_NaoClusterizado_CodigoSemEstatisticas e observar qual será o comportamento e resultado apresentado pelo Management Studio após a execução do bloco de código 2 apresentando na sequência:

— Bloco de Código 2 – Forçando o uso do índice não clusterizado IND_ClientesCategorias_NaoClusterizado_CodigoSemEstatisticas –

DBCC AUTOPILOT (5, 5, 0, 0, 0)

DBCC AUTOPILOT (0,5,597577167,2)

GO

 

SET AUTOPILOT ON — Ativando a diretiva —

Go

 

Select C.Codigo,

Cc.Codigo As ‘Categoria do Cliente’,

C.Nome,

C.Endereco,

C.Estado,

C.DataUltimaCompra

From Clientes C Inner Join ClientesCategorias CC

On C.CodigoCategoria = CC.Codigo

Where C.Estado = ‘SP’

Go

 

SET AUTOPILOT OFF — Desativando a diretiva —

GO

 

Verificando o resultado apresentado na Figura 3 abaixo, tendo como base a guia Execution Plan, podemos notar a presença do operador Index Seek apontando para nosso índice não clusterizado: IND_ClientesCategorias_Clusterizado_CodigoComEstatisticas.

hypotheticaldb-figura3
Figura 3 – Resultado da execução do bloco de código 2.

Analisando com mais calma o resultado apresentado na Figura 3, fica fácil identificar a presença do operador Index Seek como já havia destacado, quando o comando DBCC AutoPilot foi executado com o seguinte conjunto de valores:

PARÂMETRO DESCRIÇÃO VALOR DECLARADO
TypeID TypeID = 0: Usar apenas índices não clusterizados 0
DbID ID do Banco de Dados 6 – HypotheticalDB
TabID Id da Tabela a ser utilizada 597577167
Indid Id do índice a ser utilizado 2

Não é algo surpreendente e simples, esse é o Microsoft SQL Server, mais uma vez dando show, mais uma vez com um grande exibição, monstrando toda sua elegância, simplicidade e capacidade de nos supreender no processamento de transações e apresentação de resultados.

Desta forma, chegamos ao final de mais post da sessão Para que serve!


 

Espero que você tenha gostado, que as informações compartilhadas aqui possam lhe ajudar a se tornar cada vez um profissional de banco de dados reconhecido e valorizado, um dos papéis na área de tecnologia mais importantes para qualquer empresa.

Reconher o verdadeiro papel de um DBA dentro de sua estrutura, é reconhecer o verdadeiro valor de seus dados e como eles podem se tornar uma infomação valiosa para sua tomada de decisão.

Caso deseje acessar os posts anteriores desta sessão, utilize os links listados abaixo:

Mais uma vez obrigado por sua visita, um forte abraço, nos encontramos em breve.

Até mais.

Microsoft disponibiliza o SQL Server 2016 RC0


A Microsoft anunciou esta semana, a disponibilidade do SQL Server 2016 RC0 (Release Candidate 0), versão de testes mais recente do novo SQL Server.

Microsoft disponibiliza o SQL Server 2016 RC0

A Microsoft anunciou hoje a disponibilidade do SQL Server 2016 RC0 (Release Candidate 0), versão de testes mais recente do novo SQL Server

 

Benefícios do SQL Server 2016

• O desempenho aprimorado in-memory fornece transações 30 vezes mais rápidas, consultas 100 vezes mais rápidas do que bancos de dados relacionais baseados em disco e análises operacionais em tempo real.

• A nova tecnologia Always Encrypted ajuda a proteger seus dados parados e em movimento, no local e na nuvem, com chaves mestras no aplicativo, sem alterações no aplicativo.

• A tecnologia Stretch Database mantém mais dados históricos de seus clientes ao seu alcance ao ampliar de forma transparente seus dados OLTP quentes e frios ao Microsoft Azure de maneira segura sem alterações no aplicativo.

• Análises avançadas internas fornecem a escalabilidade e os benefícios de desempenho de criar e executar seus algoritmos de análise avançados diretamente no principal banco de dados transacional do SQL Server.

• Insights comerciais por meio de visualizações sofisticadas em dispositivos móveis com aplicativos nativos para Windows, iOS e Android.

• Simplifica o gerenciamento de dados relacionais e não relacionais ao consultar ambos com T-SQL usando o PolyBase.

• Backups híbridos mais rápidos, alta disponibilidade e cenários de recuperação de desastres para armazenar em backup e restaurar seus bancos de dados locais no Microsoft Azure e colocar secundários do SQL Server AlwaysOn no Azure.

Faça o download do SQL Server 2016 RC0

De acordo com o anúncio da Microsoft, este Release Candidate 0 do SQL Server 2016 traz novidades como suporte para página de código UTF-8, novas funções STRING_SPLIT (Transact-SQL) e STRING_ESCAPE (Transact-SQL), nova função JSON_MODIFY (Transact-SQL) e outras novidades. O changelog completo pode ser encontrado aqui.

O SQL Server 2016 CTP RC0 está disponível para download no Centro de Avaliação TechNet como um arquivo ISO e como um arquivo CAB 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.

Ele também estará disponível em breve aqui como máquina virtual do Microsoft Azure.

Fontes e Direitos Autorais: Baboo.com

Office 2016 já está disponível para assinantes da MSDN


O Office 2016 foi lançado nesta terça-feira pela Microsoft e os assinantes do Office 365 foram os primeiros a receber a nova versão.

Agora a empresa confirmou que a nova versão da suíte de produtividade também está disponível para os assinantes da MSDN.

Office 2016 já está disponível para assinantes da MSDN

Se você possui uma assinatura da MSDN, é possível obter tanto o Office Professional Plus 2016 para Windows como o Office Home and Business 2016 para Mac.

Os seguintes aplicativos da nova suíte de produtividade também estão disponíveis na MSDN:

• Visio Professional 2016
• Project Professional 2016

Office 2016 já está disponível para assinantes da MSDN
Empresas com contratos de licenciamento por volume terão acesso ao Office 2016 a partir do dia 1 de outubro.

Quem não é assinante do Office 365 ou da MSDN já pode comprar o Office 2016 nos links abaixo:

Office Home & Student 2016 (R$ 347)
Office Home & Business 2016 (R$ 837)
Office Professional 2016 (R$ 1.499)

Antes conhecido pelo codinome Office 16, o novo Office teve um primeiro build vazado (16.03030.1018) na Web em novembro de 2014.

Uma das novidades trazidas pela atualização para o Office 2016 é que agora será possível ver em tempo real quem também está editando seu documento. Por enquanto, este recurso só está disponível para clientes do OneDrive for Business.

A nova versão também facilita o compartilhamento de documentos com a inclusão do botão “Compartilhar” na faixa de opções. Quando você clicar neste botão, o Office 2016 salva o documento na nuvem e outras pessoas poderão fazer edições, revisões e também poderão comentar nele.

O Office 2016 também introduz o recurso Insights no Word 2016 e no Outlook 2016. Basta selecionar uma palavra no texto e informações adicionais serão exibidas no painel de tarefas. Estas informações são oferecidas pelo Bing.

O novo Office também traz novos tema (o colorido e um mais escuro), melhorias no histórico de versões dos documentos e também adiciona o recurso Tell Me no Word, Outlook e em outros aplicativos da suíte.

Basicamente o Tell Me oferece uma forma fácil e rápida de obter ajuda sem que seja necessário navegar pela documentação completa do Office. Por exemplo, fazer perguntas como “Como insiro imagens?” no Word fará com que ele exiba informações relevantes e ajuda adicional.

Outra novidade útil principalmente para estudantes é o suporte para conversão de equações manuscritas para texto. Use o recurso Inserir Equação para escrever as equações no Word, Excel e PowerPoint com uma caneta stylus, mouse ou seu dedo e elas serão convertidas automaticamente para texto.

Saiba mais sobre o Office 2016 aqui.

Fontes e Direitos Autorais: Baboo.com – Sid Vicious @ 22 set 2015 | 2:05 pm