Script Challenge – 16 – A resposta

Obtendo o histórico de consumo de CPU durante um intervalo de tempo em minutos….


Bom dia, bom dia, bom dia….

Tudo bem? Que bom te encontrar tão cedo por aqui….

Seja mais uma vez muito bem vindo ao meu blog, mais especificamente ao post que apresenta a resposta para o Script Challenge – 2019 – Post 16, sendo este respectivamente o quinto 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 16….


Script Challenge 16

Falando do desafio de número 16, o mesmo foi publicado no mês de outubro de 2019, período de data em que praticamente todos nós estamos começando a preparar para o encerramento do ano, as festas de final de ano estão se aproximando.

Da mesma forma que o início do ano não é algo muito fácil, o final também não, normalmente estamos no nosso limite físico, emocional, psicológico também, dos últimos dois meses parecem que duram o ano todo, mas não podemos nos abater e temos que serguir em frente, o mesmo foi feito aqui no meu blog.

Pois bem, o Script Challenge 16 possui um pouco relação ou conexão com toda esta loucura, não necessariamente com o natal ou final de ano, muito menos com presentes e toda aquela mesa farta com diversas comidas.

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 16 se relaciona.

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

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

E ai, revendo novamente o código publicado no post de abertura deste desafio, você conseguiu checar a alguma conclusão?

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 16 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 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 16, esta totalmente relacionada as nossas atividades diárias, mas não no mundo real, mas sim no mundo virtual, estou me referindo ao histórico de tudo aquilo que fazemos durante um período ou intervalo de tempo, e foi pensando justamente neste tipo de situação que o Script Challenge 16 foi criado.

Mas se mesmo assim, você ainda não conseguiu adivinhar ou até mesmo pode estar se perguntando: Qual a relação do Script Challenge – 16 tem haver com histórico? 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 gerar dados históricos, gerar registros que evidenciam o que foi feito, quando, como, e até mesmo o porque, e como todos devem saber, um histórico nada mais é que uma relação de itens e ações registradas ao longo do tempo que ilustram de fato estes acontecimentos.

Então a resposta para o Script Challenge 16 se relaciona com a possibilidade que o script apresenta em nos ajudar a saber como foi o consumo de CPU utilizado em nosso servidor ou instância SQL Server durante um determinado intervalo de tempo, neste caso levando-se em consideração um período de tempo de 30 minutos, com intervalos pequenos do registro de histórico de processamento a cada um minuto.

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 16 – A resposta – Realizando Auditoria em tempo real (In Live) —

DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks) FROM sys.dm_os_sys_info);
SELECT TOP(30)
               SQLProcessUtilization AS [SQL Server Process CPU Utilization],
               SystemIdle AS [System Idle Process],
               100 – SystemIdle – SQLProcessUtilization AS [Other Process CPU Utilization],
               DATEADD(ms, -1 * (@ts_now – [timestamp]), GETDATE()) AS [Event Time]
FROM (
              SELECT record.value(‘(./Record/@id)[1]’, ‘int’) AS record_id,
                           record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]’, ‘int’) AS [SystemIdle],
                           record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]’,’int’) AS [SQLProcessUtilization],
                           [timestamp]
FROM (
             SELECT [timestamp], CONVERT(xml, record) AS [record]
             FROM sys.dm_os_ring_buffers
             WHERE ring_buffer_type = N’RING_BUFFER_SCHEDULER_MONITOR’
             AND record LIKE N’%<SystemHealth>%’) AS x
            ) AS y
ORDER BY record_id DESC
Go

Então, agora você deve ter gostado deste desafio, não é verdade? Saber que existe a possibilidade de identificar como foi o consumo de CPU utilizado por nosso SQL Server durante um período de tempo, com certeza é algo que poderá nos ajudar muito a entender possíveis mudanças de comportamento em nosso ambiente.

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

Figura 2 – Histórico de execução e consumo de CPU.

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

  • SQL Server Process CPU Utilization: Apresenta os valores relacionados a quantidade de CPU consumida pelo SQL Server de acordo com a linha de histórico retornada dentro do intervalo de tempo registrado. Esta coluna é gerada atráves processo Scheduler Monitor Event / System Health / Process Utilization, o qual é parte da camada do sistema operacional existente no SQL Server conhecido como SQLOS, em conjunto com o próprio sistema operacional e sua camada de monitoramento de eventos; e
  • Other Process CPU Utilization: Apresenta os valores relacionados a quantidade de CPU consumida por todos os outros serviços e recursos em execução de acordo com a linha de histórico retornada dentro do intervalo de tempo registrado. Esta coluna é gerada atráves do cálculo: 100 –
    SystemIdle – SQLProcessUtilization, onde a coluna SystemIdle é concebida através do processo Scheduler Monitor Event / System Health / System Idle, sendo este também pertencente parte da camada do sistema operacional existente no SQL Server.

Enfim, conseguimos, chegamos ao final, esta é a resposta para o Script Challenge 16, fico honrado, 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 16. A seguir apresento o resultado desta enquete:

A opção mais votada com 66% dos votos é justamente a resposta correta para este desafio: “O bloco de código apresentado se relacionado com a possibilidade de realizar o monitoramento do consumo cpu como parte dos processos e aplicações que estão acessando o SQL Server em um longo período de tempo.”

Referências

https://www.mssqltips.com/sqlservertip/1915/how-to-automatically-monitor-windows-event-log-from-sql-server/

https://docs.microsoft.com/en-us/sql/ssms/agent/monitor-and-respond-to-events

https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-schedulers-transact-sql

https://www.mssqltips.com/sqlservertip/4403/understanding-sql-server-schedulers-workers-and-tasks/

https://blogs.msdn.microsoft.com/mvpawardprogram/2012/06/04/using-sys-dm_os_ring_buffers-to-diagnose-memory-issues-in-sql-server/

https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-buffer-descriptors-transact-sql

https://gallery.technet.microsoft.com/SQL-Server-Monitoramento-ea6dd632

https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sql-server-operating-system-related-dynamic-management-views-transact-sql

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/10/26/script-challenge-2019-post-16/

https://pedrogalvaojunior.wordpress.com/2019/06/26/script-challenge-15-a-resposta/

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

Até mais….

Script Challenge – 2019 – Post 16


Olá, bom dia amantes de banco de dados…

Tudo bem? Nossa como o tempo esta passando, como você sabe a cada quatro meses nos encontramos em mais um post dedicado especialmente a sessão Script Challenge.

Hoje sabado dia 26/10 a primavera chegou a alguns dias, mas continuamos sofrendo muito com este forte calor,  pode até parecer coincidência mas o post anterior publicado no mês de fevereiro desta sessão também foi iniciado falando do calor. O ano de 2019 esta terminando da mesma forma que começou: Sol forte, Ventos quentes e Temperaturas altas para os padrões nacionais, em especial para minha “grande” São Roque (kkkkk……)

O post de hoje não esta relacionado com as mudanças de temperatura do nosso clima, muito menos com o calor, chuva, ao contrário, ele vai tentar lhe ajudar a identificar possíveis situações que começam a ser apresentadas em nosso ambiente decorrentes de mudança rápida, totalmente inesperada, algo que ocorre em poucos minutos que poderá provocar um estrago, isso é muito comum de acontecer. Não é mesmo?

Pense então, nas situações relacionados ao seu ambiente de banco de dados que em poucos minutos começa a se comportar de forma totalmente desconhecida, é a mesma coisa que sair para dar uma volta e começar a chover e você não tem um guarda-chuva, e ai que fazer, como identificar esta mudança ou o que pode ter provocado isso, mas principalmente a partir de qual momento esse comportamento diferente teve início.

Introdução

Os posts publicados nesta sessão tem o objetivo de desafiar o visitante a descobrir o que um determinado script pode fazer ao ser executado, e não somente isso, mostrar como podemos aprender com o uso da linguagem Transact-SQL e sua vasta coleção de comandos, funções e instruções adicionadas a cada nova versão ou atualização do Microsoft SQL Server.

Se você ainda não conhecia a sessão Script Challenge, fique tranquilo vai ter a possibilidade agora mesmo, como também a cada 4 meses poder desfrutar de um novo desafio e sua respectiva resposta, por isso esta sessão é denominada Script Challenge(Script Desafio ou Desafio do Script), bom a melhor forma de traduzir eu deixo para você escolher.

Seguindo um frente….

Gostaria de destacar mais uma vez duas mudanças iniciais implementadas na sessão Script Challenge tendo como base o post publicado em outubro de 2017, sendo elas:

  1. Como maneira ou forma de dificultar ainda mais o nível de complexidade do código, o bloco de código que representa o Script Challenge selecionado para compor o post será  apresentado no formato de imagem ou figura; e
  2. Algumas partes das linhas de código, trechos, ou partes de código serão omitidas, justamente como forma de tornar este código ainda mais desafiador.

Antes de destacar o script de hoje, não custa nada saber um pouco mais sobre esta sessão, por este motivo, quero lhe contar um pouco da história que cerca os posts relacionadas a ela…

Um pouco de História

Esta é uma sessão criado no final do ano de 2010 e mantida mensalmente até meados de 2012, desde então não me dediquei mais a mesma devido principalmente em não conseguir identificar possíveis scripts dentro da minha biblioteca que poderiam ser apresentados como um scripts considerados como desafio para os profissionais da área de banco de dados.

Mas acredito que nos últimos anos com o crescimento do Microsoft SQL Server, seu nível de evolução, amadurecimento e recursos adicionais, como também, meu nível de experiência profissional e acadêmica também evolui muito, sinto-me preparado para retornar com esta sessão e poder de forma bastante técnica, didática e conceitual poder lançar um “desafio” e responder o mesmo com muito segurança.

Outro detalhe importante, esta é uma sessão que foi criada, pensando em apresentar pequenos blocos de códigos oriundos da linguagem Transact-SQL que possam apresentar um nível de dificuldade e conhecimento técnico um pouco mais elevado, exigindo assim uma análise mais profunda e até mesmo a criação um pequeno cenário de teste para seu entendimento.

Vamos então conhecer o bloco de código selecionado para ser o Script Challenge deste post.


Script Challenge – 16

O bloco de código Transact-SQL selecionado para fazer parte do Script Challenge de hoje, esta relacionado com uma importante atividade exercida por Administradores de Servidores, DBAs e Administradores de Banco de Dados.

Trata-se de algo que pode ajudar a identificar possíveis situações que venham a atrapalhar o processamento e execução de nossas querys e transações. Ao contrário do Script Challenge 15, este script possui a finalidade de apresentar os custos de processamento que estão sendo demandados pelos processos em execução relacionados diretamente com o Microsoft SQL Server.

Não deveria, mas vou lhe ajudar, apresentando duas dicas sobre este desafio

  1. O mesmo, pode ser executado em conjunto com as demais sessões, transações ou querys em execução, sem necessitar que qualquer procedimento de manutenção ou alterações na configuração do SQL Server para sua execução, como também, esta totalmente relacionado com o que venha ou possa estar sendo processado pelo sistema operacional que necessite de dados do SQL Server naquele exato momento; e
  2. Preste atenção na relação de tags que estão compartilhadas, nelas você poderá encontrar as partes omitidas do bloco de código, bem como, a resposta para a enquente apresentado no final do post.

E ai, ficou curioso para saber o que este script realiza? Qual seria a sua atividade? O conjunto de resultados que ele retornaria? Pois bem, foi fazer o papel de chato, a resposta para estes e outras demais questões não serão apresentadas hoje (hahahahahahaha……), vou deixar com que você quebre um pouco a sua cabeça, afim de tentar matar esta curiosidade, no final do post como de costume você terá a sua disposição uma enquete que lhe permitirá expor tentar encontrar a resposta para este desafio.

A seguir apresento o bloco de código:


Figura 1 – Short Script 16.

Muito bem, nosso Script Challenge esta apresentado. Você preparado para mais este desafio?

Tenho a certeza que sim!


Sua participação

Legal, agora quero conter com a sua participação, me ajudando a responder este post, outra grande novidade que estou adicionando aos posts da sessão Script Challenge será uma pequena enquete com possíveis respostas para identificar qual é a correta, relacionada com o desafio apresentado através do bloco de código selecionado para este post, desta forma, apresento a seguir a Enquete – Script Challenge – 16 e suas alternativas de resposta:

Seguindo em frente, já conhecemos o Script Challenge selecionado, sua enquete e relação de opções de resposta, fica faltando somente a sua participação, algo que eu tenho a certeza que vai acontecer rapidamente.

Durante quanto tempo posso participar…

Outra grande mudança na sessão Script Challenge é seu tempo de publicação “validade”, anteriormente os posts desta sessão eram publicados mensalmente ou bimestralmente, agora serão publicados em um período mais longo, ou seja, a cada 4 meses estarei compartilhando com vocês novos posts dedicados exclusivamente para esta sessão.

Desta forma, você terá mais tempo para participar e me ajudar e encontrar a resposta correta para este desafio, enviando suas possíveis sugestões, críticas e até mesmo alternativas de resposta para minha enquete.

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/06/26/script-challenge-15-a-resposta/

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 post apresentado como um possível “desafio” possa ser úteis 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, tratados com “bichos de sete cabeças”.

Um forte abraço nos encontramos em breve nas demais sessões, e especialmente em fevereiro de 2020 em mais um post da sessão Script Challenge, o qual apresentará a resposta para este post.

Fique a vontade para conhecer demais post publicados até o presente momento em todas as sessões do meu blog.

Tenha um ótimo final de semana.

Abraços.

Novidades sobre Xbox Scarllet apresentadas por Phil Spencer

Depois de uma E3 em que a Microsoft parece que conscientemente deixou muitas perguntas sem resposta, é certamente o homem que todos buscam explicações.


Alguns dias atrás, Spencer falou ao alemão PCGamesHardware, onde ele revelou uma série de pontos muito interessantes. É claro que ele também contribuiu com informações sobre o Xbox ScarlettApesar desse site alemão ser dedicado aos jogos de PC, o chefe da divisão do Xbox lida amplamente com os esforços da Microsoft em relação ao Windows, mas também teve tempo de falar sobre os consoles.

Nesta entrevista, ele apostou em trazer mais Xbox e Windows através do novo SDK de Redmond, com o qual os desenvolvedores podem tirar proveito do trabalho feito para uma das plataformas no outro, todos vimos como a conferência do Xbox se referia ao Xbox Scarlett como um hardware quatro vezes mais poderoso que o Xbox One X.

Bem, Spencer queria ressaltar que, com essa afirmação, eles se referiam diretamente à CPU:

“Quando declaramos que o console seria quatro vezes mais potente, nos referimos apenas à CPU. Seria um pouco simplista falar sobre a potência total do console, porque há muitos componentes que ainda não estão definitivos.”

                                      Phil Spencer – CEO da divisão Xbox.

Isso significa que já existe uma CPU decidida por Scarlett? Provavelmente não, mas esta é certamente a especificação mais próxima da final. Além disso, deixou claro que o console ainda está em preparação, então nem ele sabe ao certo o seu verdadeiro poder.

Spencer também relatou a importância de incorporar ao console o SSD, o que ele diz “pode ser usado por desenvolvedores quase como se fosse RAM“: 

“… Nosso objetivo principal com Scarlett era melhorar os recursos gráficos e a GPU do console. Agora estamos falando de 120 Hertz ou taxas de atualização variáveis. Porque se o tempo do loop do jogo – as principais rotinas de um jogo – corresponder à taxa de atualização, isso reduz a latência de entrada e, assim, garante uma experiência de jogo tranquila. E isso depende muito da largura de banda da CPU e da memória. É por isso que você tem que ver uma declaração como “Scarlett é x vezes mais rápido que o Xbox One X” um pouco mais diferenciado.”

Outro fato interessante, Phil Spencer adicionou que podemos ver versões melhoradas para o Xbox Scarlett dos jogos da geração atual no próximo, como aconteceu com os jogos da retrocompatibilidade. Ainda disse que diferentemente dos PCs, os consoles historicamente tinham GPUs fracas mas que mudar isso para ir além dos 30FPS.

Ficamos felizes em saber que a Microsoft e suas equipes estão construindo seu próximo console pensando não apenas em potência bruta , mas também para facilitar a vida dos desenvolvedores.

As expectativas é que esta máquina seja uma outra obra de arte para os fãs do Xbox, com certeza, uma forma de mostra que esta plataforma vai muito além de um “simples jogo”, representa a junção de todo potencial humana existente na construção de uma máquina em união das principais invoações tecnológicas para programação voltada para jogos.


Fontes e Direitos Autorais: PCGamesHardware.de – 05/07/2019.
Leia na integra acessando: https://www.pcgameshardware.de/Xbox-Next-Scarlett-Konsolen-268616/Specials/Phil-Spencer-Das-Mega-Interview-1293543/?utm_source=twitter.com&utm_campaign=sharebutton&utm_medium=social
Coautoria – WindowsClub.com.br

Script desenvolvido pela Microsoft verifica se PCs estão vulneráveis aos ataques gerados pelas falhas Meltdown e Spectre


A Microsoft anunciou em seu site de suporte a disponibilidade de um script do PowerShell que pode ser utilizado por profissionais de TI para verificar se PCs são vulneráveis aos ataques Meltdown e Spectre.

O script pode ser utilizado via PowerShell no Windows 10 (1v1507, v1511, v1607, v1703 e v1709), Windows 8.1 e Windows 7 com SP1.

Ações recomendadas
Antes de começar, a Microsoft alerta que seus precisam tomar as seguintes medidas para se protegerem contra as vulnerabilidades:

– Verifique se você está executando um aplicativo antivírus com suporte antes de instalar as atualizações de SO ou firmware. Contate o fornecedor do software antivírus para obter informações de compatibilidade.

– Aplique as atualizações disponíveis do sistema operacional Windows, incluindo as atualizações de segurança do Windows de janeiro de 2018.

– Aplique a atualização de firmware fornecida pelo fabricante do dispositivo.

Nota: Máquinas baseadas no Windows (físicas ou virtuais) devem instalar as atualizações de segurança da Microsoft que foram lançadas em 3 de janeiro de 2018.

Aviso
Os clientes que só instalarem as atualizações de segurança do Windows de janeiro de 2018 não receberão o benefício de todas as proteções conhecidas contra as vulnerabilidades. Além de instalar as atualizações de segurança de janeiro, é necessária uma atualização do microcódigo do processador ou do firmware. Ele deve estar disponível pelo fabricante do seu dispositivo.

Observação: Os dispositivos da linha Surface receberão uma atualização do microcódigo através do Windows Update.

Script da Microsoft verifica se PCs são vulneráveis aos ataques Meltdown e Spectre

Verificando se o computador é vulnerável aos ataques Meltodown e Spectre

Para ajudar os clientes a confirmar se as proteções foram habilitadas e se seus sistemas estão vulneráveis, a Microsoft publicou um script PowerShell que os profissionais de TI podem executar em seus sistemas. Instale e execute o script executando os seguintes comandos:

Instale o módulo via PowerShell:

PS > Install-Module SpeculationControl

Execute o módulo no PowerShell para validar se as proteções estão habilitadas:

PS > Get-SpeculationControlSettings

A saída desse script PowerShell será semelhante à exibida abaixo. As proteções habilitadas serão exibidas na saída como “True”:

PS > Get-SpeculationControlSettings

Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: True
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID optimization is enabled: True

Perguntas frequentes

P: Como saber se eu tenho a versão certa do microcódigo da CPU?
R: O microcódigo é fornecido através de uma atualização de firmware. Consulte o fabricante do dispositivo sobre aversão do firmware que possui a atualização apropriada para a sua CPU.

P: Meu sistema operacional (SO) não está listado. Quando posso esperar o lançamento de uma correção?
R: Abordar uma vulnerabilidade de hardware através de uma atualização de software apresenta desafios significativos, e as mitigações para sistemas operacionais mais antigos exigem extensas mudanças na arquitetura. A Microsoft está trabalhando com fabricantes de chips afetados para determinar a melhor maneira de proporcionar mitigações, que podem ser disponibilizadas em atualizações futuras.

P: Onde posso encontrar as atualizações de firmware/hardware do Surface?
A: As atualizações para dispositivos Microsoft Surface serão entregues aos clientes através do Windows Update, juntamente com as atualizações para o sistema operacional Windows. Para obter mais informações, consulte o artigo KB4073065.

Nota: Se seu dispositivo não for da Microsoft, aplique o firmware do fabricante do dispositivo. Contate o fabricante para obter mais informações.

P: Tenho um arquitetura x86, mas não vejo atualização. Vou receber uma?
R: Abordar uma vulnerabilidade de hardware através de uma atualização de software apresenta desafios significativos, e as mitigações para sistemas operacionais mais antigos exigem extensas mudanças na arquitetura. Estamos trabalhando com fabricantes de chips afetados para determinar a melhor maneira de fornecer mitigações para clientes x86, que podem ser fornecidos em uma atualização futura.

Fontes e Direitos Autorais: Suporte Microsoft – 05/01/2018 – https://support.microsoft.com/pt-br/help/4073119/protect-against-speculative-execution-side-channel-vulnerabilities-in

Introdução ao Data Collection no Microsoft SQL Server 2008 – Parte III.

Introdução ao Data Collection no Microsoft SQL Server 2008 – Parte III.


Olá pessoal, bom dia.

Conforme o prometido, estou de volta para continuar com a série de artigos sobre o Data Collection, nesta terceira parte, vou destacar os elementos de processamento e tempo de execução envolvido por cada elemento utilizado pelo DC.

Desejo uma boa leitura.

———————————————————————————————————————————————————

Processamento de tempo de execução

A figura 4 a seguir fornece uma exibição de alto padrão e simplificada do processamento de tempo de execução quando um
conjunto de coleta é iniciado e os dados são coletados e carregados. Apesar desta ilustração mostrar a coleta de dados e o carregamento de dados como dois processos de trabalho separados, eles também podem ocorrer como um único trabalho, como mostram os exemplos anteriores.

Figura 4. Processamento quando um conjunto de coleta é iniciado, dados coletados e carregados.

 

Coleta de dados

Na figura 4 apresentada anteriormente, as etapas do processo de coleta de dados têm o prefixo “C.” As etapas de processamento são as seguintes:

1. Um procedimento armazenado inicia o conjunto de coleta. O estado do conjunto de coleta no MSDB é alterado para em Execução. Esta mudança de estado habilita os trabalhos do SQL Server Agent vinculados ao conjunto de coleta;

2. O SQL Server Agent inicia o trabalho conforme segue:

  • Se o modo do conjunto de coleta estiver definido como armazenado em cache, o trabalho de coleta será iniciado imediatamente; e
  • Se o modo do conjunto de coleta estiver definido como não armazenado em cache, o trabalho de coleta será iniciado de acordo com a agenda configurada.

3. Quando um trabalho é iniciado, ele gera um processo para executar o componente de tempo de execução do coletor de dados (Dcexec.exe) e o informa para executar o pacote de coleta associado ao conjunto de coleta;

4. Quando o DCexec.exe é iniciado, ele lê a configuração do coletor de dados no MSDB para localizar o modo de coleta a ser usado: armazenado em cache ou não armazenado em cache;

5. O componente de tempo de execução do coletor de dados utiliza o componente de tempo de execução do SSIS
para executar os pacotes de coleta definidos para o conjunto de coleta; e

6. Os pacotes de coleta são executados até receberem um sinal para serem interrompidos ou até atingirem um ponto de extremidade predefinido. Os pacotes de coleta salvam os dados coletados em uma área de preparação até serem carregados.

O design do tipo de coletor para o conjunto de coleta determina o tipo de área de preparação utilizado. A área de preparação pode ser uma área de memória compartilhada, arquivos temporários ou uma fila de mensagens.

Carregamento de dados

Na ilustração anterior, as etapas do processo de carregamento de dados têm o prefixo “U”. As etapas de processamento são as seguintes:

1. Quando um carregamento é necessário, um procedimento armazenado inicia o trabalho que é tratado pelo SQL Server Agent;

2.  O SQL Server Agent inicia o trabalho conforme segue:

  • Se o usuário enviar uma solicitação de carregamento sob demanda, o trabalho de carregamento será iniciado imediatamente;
  • Se não houver nenhuma solicitação de carregamento sob demanda, o trabalho de carregamento será iniciado de acordo com o cronograma configurado para o conjunto de coleta.

3. Quando um trabalho é iniciado, ele gera um processo para executar o componente de tempo de execução do coletor
de dados (DCexec.exe) e o avisa para executar o pacote de carregamento associado ao conjunto de coleta;

4. Quando o Dcexec.exe é iniciado, ele lê a configuração do coletor de dados no MSDB para descobrir como tratar o carregamento (por exemplo, a cadeia de conexão para o data warehouse de gerenciamento ou qualquer processamento de dados necessário);

5. O componente de tempo de execução do coletor de dados utiliza o componente de tempo de execução SSIS para executar os pacotes de carregamento definidos para o conjunto de coleta;

6. O pacote de carregamento lê os dados que são retidos na área de preparação e efetua as transformações necessárias, como normalização ou amostragem. Quando as transformações estiverem finalizadas, o pacote de carregamento se conecta ao data warehouse de gerenciamento e insere os dados;

7. Depois que o carregamento estiver concluído, o processo termina mas o estado do conjunto de coleta permanece inalterado. O carregamento seguinte é iniciado de acordo com a agenda do conjunto de coleta.

CONJUNTOS DE COLETA DE DADOS NO SISTEMA

São instalados três conjuntos de coleta de dados do Sistema durante o processo de Instalação do SQL Server 2008, e podem ser configurados para se adequarem aos requisitos de monitoramento do usuário, mas não podem ser excluídos. Os conjuntos consistem no seguinte:

Uso do Disco: Coleta dados sobre o disco e o uso de log de todos os bancos de dados instalados no sistema;

Atividade do servidor: Coleta estatísticas de uso de recursos e dados de desempenho do servidor e do SQL Server; e

Estatísticas de consulta: Coleta estatísticas de consulta, texto de consulta individual, planos de consulta e consultas específicas.

Conjunto de coleta de uso de disco

Controla o aumento do banco de dados e dos arquivos de log e fornece estatísticas relacionadas a arquivos, como o aumento médio (em megabytes) diário. O conjunto de coleta tem dois itens de coleta, Uso do Disco – Arquivos de Dados e Uso do Disco – Arquivos de Log. Os dois usam o tipo de coletor de Consultas T-SQL Genérico. O conjunto de coleta reúne os seguintes dados:

  • Instantâneos de tamanhos de arquivos de dados obtidos das exibições sys.partitions e sys.allocation_units;
  • Instantâneos de tamanhos de arquivos de log obtidos do comando DBCC SQLPERF (LOGSPACE); e Instantâneos de estatísticas de E/S da função sys.dm_io_virtual_file_stats.

A tabela 1 a seguir fornecem informações detalhadas sobre o conjunto de coleta Uso do Disco e seus itens de coleta.

Nome do
conjunto de coleta

Uso do Disco

Modo de  coleta Não armazenado em cache
Freqüência da agenda de carregamento A cada 6 horas
Retenção de dados 730 dias
Itens de coleta Uso do Disco – Arquivos de Dados

Uso do Disco – Arquivos de Log

Tabela 1. Informações sobre o conjunto de dados coletados através da Coleta Uso do Disco.

CONJUNTO DE COLETA DE ATIVIDADE DO SERVIDOR

Este conjunto fornece uma visão geral da atividade, utilização de recursos e contenção de recursos do SQL Server. O conjunto de coleta também fornece uma exibição encapsulada da utilização geral de recursos do sistema, permitindo a um usuário determinar se os problemas de desempenho estão relacionados às atividades fora do escopo do SQL Server. Esse conjunto de coleta reúne exemplos de dados das exibições de gerenciamento dinâmico a seguir:

  • sys.dm_os_wait_stats – Retorna informações sobre todos os processos aguardando execução. Você pode usar esta dynamic manegement view para diagnosticar problemas de desempenho com o SQL Server e também com consultas específicas e lotes;
  • sys.dm_os_latch_stats – Retorna informações sobre todas as esperas travadas aguardando execução, organizado
    pela classe;

  • sys.dm_os_schedulers – Retorna uma linha por agendamento no SQL Server onde cada agendamento é mapeado para um processador individual; 

  • sys.dm_exec_session –  Retorna uma linha por sessão autenticada no SQL Server. sys.dm_exec_sessions é um modo de exibição de escopo de servidor que mostra informações sobre todas as tarefas internas e conexões de usuário ativo. Esta
    informação inclui a versão do cliente, nome do programa cliente, tempo de logon do cliente, usuário de login, configuração de sessão atual e mais. Use sys.dm_exec_sessions para exibir pela primeira vez a carga do sistema atual e para identificar uma sessão de interesse e, em seguida, saiba mais informações sobre a sessão usando outras exibições de gerenciamento dinâmico ou funções de gerenciamento dinâmico; 

  • sys.dm_exec_requests – Retorna informações sobre cada solicitação que está em execução no SQL Server;

 

  • sys.dm_os_waiting_tasks – Retorna informações sobre a fila de espera das tarefas que estão à espera de algum
    recurso;

 

  • sys.dm_os_process_memory  – Apresenta informações sobre as alocações de memória que são atribuídas ao espaço de
    processo do SQL Server são controladas através de interfaces que permitem para acompanhamento e contabilização dessas alocações. No entanto, alocações de memória podem ser executadas no espaço de endereço do SQL Server que ignora as
    rotinas de gestão de memória interna. Valores são obtidos por meio de chamadas para o sistema operacional básico. Eles não são manipulados por métodos internos para o SQL Server, exceto quando ele ajusta para alocações de página bloqueada ou grandes; e 

  • sys.dm_os_memory_nodes – Apresenta informações sobre alocações  internas que usam o Gerenciador de memória do SQL Server.

 

Adicionalmente, exemplos de dados são coletados de vários sistemas e de contadores de desempenho do SQL Server. O conjunto de coleta de Atividade do Servidor fornece uma visão geral do sistema em termos de utilização de recursos e de afunilamentos de recursos.
O uso de recursos é rastreado em quatro áreas gerais: CPU, E/S de disco, memória e rede. A sys.dm_exec_sessions, sys.dm_exec_requests e sys.dm_os_waiting_tasks permitem a correlação da atividade do sistema com os afunilamentos de recursos e com problemas de bloqueio. Executado por conta própria, esse conjunto de coleta permite associar os afunilamentos de recursos a uma sessão bloqueada e mostrar cadeias de bloqueio no nível da sessão.

Embora os textos de consulta não sejam coletados, o usuário pode usar as informações de sql_handle e plan_handle coletadas pelo conjunto de coleta Estatísticas de Consulta para fazer busca detalhada abaixo do nível da sessão.

A tabela 2 a seguir fornecem informações detalhadas sobre o conjunto de coleta de Atividade do Servidor e seus itens de coleta.

Nome do conjunto de coleta

Atividade do servidor

Modo de coleta Em cache
Freqüência da agenda de carregamento A cada 15 minutos
Retenção de dados 14 dias
Itens de coleta Instantâneos DMV.

Contadores de Desempenho.

Tabela 2. Informações sobre o conjunto de dados coletados através da Atividade do servidor.

Bom pessoal, vou encerrar aqui esta terceira parte, estamos chegando para parte final de artigo, na próxima parte, vou destacar os recursos de CONJUNTO DE COLETA DE ESTATÍSTICAS DE CONSULTA.

Agradeço mais uma vez a sua visita, vou ficando por aqui, nos vemos em breve.

Até mais.