Arquivo da categoria: Highway to Hell

Highway to Hell – Extended Events – A significant part of SQL Server process memory has been paged out

Galera,

No vídeo de hoje quero discutir com vocês sobre uma situação relacionada a pressão de memória ocorrida em um dos clientes que atendo e como resolvi o problema utilizando o Extended Events.

Caso tenha interesse em reproduzir o cenário descrito no vídeo, basta utiliza o script abaixo:


--LPIM => 'Lock Pages In Memory'

--Analisando utilização de memória com o XEvents

--A significant part of SQL Server process memory has been paged out.
--This may result in performance degradation.This may result in a performance degradation.
--Duration: 0 seconds. Working set (KB): 2007640, committed (KB): 4594040, memory utilization: 43%.

/*
Working SET => Memória alocada pelo processo diretamente na memória RAM
Committed => Total de memória alocada pelo processo (RAM ou Page file)
Working Set trimming=> Windows está movendo bytes alocados na memória RAM para o Page File por causa de pressão de memória.
*/

--Memória utilizada pelo processo do SQL Server
SELECT
DATEADD (ms, a.[Record Time] - sys.ms_ticks, GETDATE()) AS Notification_time,    a.*
FROM
(SELECT
x.value('(//Record/SchedulerMonitorEvent/SystemHealth/PageFaults) [1]', 'bigint') AS [PageFaults],
x.value('(//Record/SchedulerMonitorEvent/SystemHealth/MemoryUtilization) [1]', 'bigint') AS [MemoryUtilization (%workingset)],
x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
FROM
(SELECT
CAST (record as xml)
FROM
sys.dm_os_ring_buffers
WHERE
ring_buffer_type = 'RING_BUFFER_SCHEDULER_MONITOR') AS R(x)) a
CROSS JOIN
sys.dm_os_sys_info sys
ORDER BY
DATEADD (ms, a.[Record Time] - sys.ms_ticks, GETDATE())

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

Grande abraço a todos.

 

Highway to Hell – Extended Events – Parte 25 – Auditando o SQL Server

Galera,

No vídeo de hoje quero demonstrar como podemos configurar a funcionalidade SQLAudit, que utiliza o engine dos Extended Events, para auditar os eventos que ocorrem em um servidor de banco de dados SQL Server.

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

Grande abraço a todos.

Reunião do SQLManiacs – Conhecendo um pouco de performance

Galera,

No dia 03/12 tivemos a última reunião, do ano de 2015, do SQLManiacs com a participação do Thiago Alencar que trouxe todo seu conhecimento em performance e tuning em excelentes cenários práticos.

Para quem tiver interesse em reproduzir todos os cenários descritos na reunião, basta fazer o download dos scripts através do link abaixo:

Reunião do SQLManiacs – Conhecendo um pouco de performance

Tivemos casa cheia, como podem ver nas fotos abaixo:

IMG_20151203_190910333 IMG_20151203_191040534 IMG_20151203_190925145_HDR IMG_20151203_190921094_HDR

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

Grande abraço a todos.

Highway to Hell – Extended Events – Parte 24 – Monitorando o Analysis Services

Galera,

No vídeo de hoje quero demonstrar como podemos utilizar o XEvents para monitorarmos tudo o que acontece em uma instância de Analysis Services.

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

Grande abraço a todos.

Highway to Hell – Extended Events – Parte 23 – Monitorando o AlwaysOn com Extended Events

Galera,

No vídeo de hoje quero demonstrar como podemos monitorar a solução de alta disponibilidade AlwaysOn utilizando o Extended Events e também o SQLDiag Logs.

Não esqueçam que hoje, à partir das 21:00, teremos um webcast com o Arthur Luz falando sobre o DataZen.

Caso tenham interesse em participar, basta acessar o link abaixo no horário do evento:

Entendendo o DataZen

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

Grande abraço a todos.

SQL Saturday #424 – Apresentação

Galera,

No último dia 26/09 aconteceu o SQL Saturday, um grande evento de SQL Server para a comunidade brasileira.

Tivemos um dia inteiro com palestras de altíssimo nível com os melhor profissionais do Brasil e tenho certeza de que todos que puderam comparecer aprenderam muito.

Caso tenha interesse em realizar o download do material que utilizei em minha sessão, basta acessar o link abaixo:

SQL Saturday #424 – Monitorando AlwaysOn com Extended Events

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

Grande abraço a todos.

SQL Saturday #424 – São Paulo

Galera,

É novamente com muita alegria que informo a todos que minha palestra enviada ao SQL Saturday #424 foi selecionada e participarei do evento ao lado dos principais nomes da comunidade brasileira de SQL Server.

Na sessão selecionada para o evento discutirei como monitorar por completo, através dos Extended Events, um ambiente que utiliza o AlwaysOn.

Quero convidar a todos a participar deste excelente evento e adquirir um enorme conhecimento com uma grade de palestras muito bem selecionadas pelos organizadores.

Caso tenha interesse em prestigiar o evento basta fazer o cadastro através do link abaixo:

SQL Saturday #424

Espero que gostem e aproveitem também para inscreverem-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço.

Highway to Hell – Extended Events – Parte 22 – Encontrando IMPLICIT CONVERSIONS

Galera,

No vídeo de hoje quero demonstrar como podemos encontrar consultas que estejam causando queda de performance em um ambiente SQL Server devido às conversões implícitas.

Caso tenha interesse em reproduzir o cenário descrito no vídeo, basta utilizar o script abaixo:

--Criação da sessão de monitoração
CREATE EVENT SESSION [XE_MONITOR_IMPLICIT_CONVERSION] ON SERVER 
ADD EVENT sqlserver.plan_affecting_convert(
    ACTION(sqlserver.database_name,sqlserver.sql_text)
    WHERE ([sqlserver].[database_id]>(4)))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,
TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO
--Estrutura da tabela Pessoa
SP_HELP 'Pessoa'
GO
--Consulta realizando conversão implicita
SELECT * FROM Pessoa WHERE CPF = '14974'

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

Grande abraço a todos.

SOLUÇÃO DO DESAFIO DO GORDO – Qual a função do Ghost Cleanup?

Galera,

Resolvi responder nosso último DESAFIO DO GORDO utilizando o XEvents para demonstrar o funcionamento do Ghost Cleanup e explicar qual sua finalidade e possíveis problemas de performance que pode causar.

Caso tenham interesse em reproduzir o cenário descrito no vídeo, basta utilizar o script abaixo:

--TRACE FLAG 661
--Criado a sessão de monitoração
CREATE EVENT SESSION [XE_MONITOR_GHOST_CLEANUP] ON SERVER 
ADD EVENT sqlserver.ghost_cleanup(
    WHERE ([sqlserver].[database_id]=(5))),
ADD EVENT sqlserver.ghost_cleanup_task_process_pages_for_db_packet(
    WHERE ([sqlserver].[database_id]=(5))),
ADD EVENT sqlserver.ghost_cleanup_task_start(
    WHERE ([sqlserver].[database_id]=(5))) 
ADD TARGET package0.ring_buffer
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,
MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO


--Criando a tabela
USE AdventureWorks2012
GO
CREATE TABLE Cliente (Codigo INT, Nome VARCHAR(100))
GO
INSERT Cliente VALUES 
(1,'Ze'),(2,'Maria'),(3,'Jao')
go
CREATE CLUSTERED INDEX IDX1 on Cliente (Codigo)
GO
DBCC TRACEON(3604)
GO
DBCC IND('AdventureWorks2012','Cliente',1)
GO
DBCC PAGE('AdventureWorks2012',1,35987,3)
GO
DELETE FROM Cliente WHERE Codigo = 1
DBCC PAGE('AdventureWorks2012',1,35987,3)

--Analisando os eventos capturados
SELECT CAST(target_data AS XML),* FROM sys.dm_xe_session_targets

Espero que gostem e aproveitem também para inscreverem-se no blog, no canal do youtube e no grupo de discussão SQLManiacs.

Grande abraço.

SQL Server 2016 – Quick Glance

Galera,

No vídeo de hoje quero discutir com vocês sobre o recém anunciado SQL Server 2016.

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

Grande abraço a todos.