Resultados da pesquisa

Keyword: ‘highway to hell’

Highway to Hell – Extended Events – Parte 18 – Monitorando operações de SCAN

Galera,

No vídeo de hoje quero demonstrar como encontrar o banco de dados e as consultas que executam a maior quantidade de operações de SCAN no seu ambiente SQL Server.

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


--Criando monitoração para descobrir o banco de dados com mais
--operações de SCAN
CREATE EVENT SESSION [XE_MONITOR_SCAN] ON SERVER
ADD EVENT sqlserver.scan_started(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_id]=(5)))
ADD TARGET package0.histogram(SET
source=N'sqlserver.database_name')

--Simulando operações de SCAN
USE AdventureWorks2012
GO
SELECT * FROM Person.Person
GO 10
SELECT * FROM Sales.SalesOrderDetail
GO 5

--Analisando resultado da monitoração
SELECT
CAST(target_data as XML) target_data
FROM
sys.dm_xe_sessions AS s
JOIN
sys.dm_xe_session_targets t
ON
s.address = t.event_session_address
WHERE s.name = 'XE_MONITOR_SCAN'

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.

Anúncios

Highway to Hell – Extended Events – Parte 17 – Monitorando PAGE SPLIT

Galera,

No vídeo de hoje quero demonstrar como utilizar o XEvents para encontrar os objetos de banco de dados com maior número de page splits.

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

--Infos do evento transaction_log
SELECT
oc.name,
oc.type_name,
oc.description
FROM
sys.dm_xe_packages AS p
INNER JOIN
sys.dm_xe_objects AS o
ON
p.guid = o.package_guid
INNER JOIN
sys.dm_xe_object_columns AS oc
ON
oc.object_name = o.name
AND
oc.object_package_guid = o.package_guid
WHERE
o.name = 'transaction_log'
AND
oc.column_type = 'data';

--Definindo o valor do filtro
SELECT
*
FROM
sys.dm_xe_map_values
WHERE
name = 'log_op'
AND
map_value = 'LOP_DELETE_SPLIT';

--Criando sessão de monitoração
CREATE EVENT SESSION [XE_MONITOR_PAGE_SPLIT]
ON    SERVER
ADD EVENT sqlserver.transaction_log(
WHERE operation = 11
)
ADD TARGET package0.histogram(
SET filtering_event_name =
'sqlserver.transaction_log',
source_type = 0,
source = 'alloc_unit_id');
GO

--Criacao da tabela TBTeste
CREATE TABLE TBTeste
( Codigo UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID() PRIMARY KEY,
Valor INT NOT NULL DEFAULT (RAND()*1000),
DataAlteracao DATETIME2 NOT NULL DEFAULT CURRENT_TIMESTAMP);
GO

--Gerando um mid-split
CREATE INDEX IDX_01 ON TBTeste (Valor);
GO
--Gerando um end-split
CREATE INDEX IDX_02 ON TBTeste (DataAlteracao);
GO

--Inserindo valores na tabela TBTeste
WHILE 1=1
BEGIN
INSERT INTO dbo.TBTeste DEFAULT VALUES;
WAITFOR DELAY '00:00:00.005';
END
GO

-- Selecionando o objeto com maior número de page splits
SELECT
o.name AS table_name,
i.name AS index_name,
tab.split_count,
i.fill_factor
FROM (    SELECT
n.value('(value)[1]', 'bigint') AS alloc_unit_id,
n.value('(@count)[1]', 'bigint') AS split_count
FROM
(SELECT CAST(target_data as XML) target_data
FROM sys.dm_xe_sessions AS s
JOIN sys.dm_xe_session_targets t
ON s.address = t.event_session_address
WHERE s.name = 'XE_MONITOR_PAGE_SPLIT'
AND t.target_name = 'histogram' ) as tab
CROSS APPLY target_data.nodes('HistogramTarget/Slot') as q(n)
) AS tab
JOIN sys.allocation_units AS au
ON tab.alloc_unit_id = au.allocation_unit_id
JOIN sys.partitions AS p
ON au.container_id = p.partition_id
JOIN sys.indexes AS i
ON p.object_id = i.object_id
AND p.index_id = i.index_id
JOIN sys.objects AS o
ON p.object_id = o.object_id
WHERE o.is_ms_shipped = 0;

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 16 – Monitorando problemas causados com o ALTER TABLE

Galera,

Hoje quero demonstrar como criar uma monitoração para analisar o quanto um simples ALTER TABLE pode impactar o seu ambiente de banco de dados SQL Server.

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

--Criando a sessão de monitoração
CREATE EVENT SESSION [XE_MONITOR_ALTER_DDL] ON SERVER 
ADD EVENT sqlserver.alter_table_update_data(
    ACTION(sqlserver.database_name,sqlserver.sql_text)) 
ADD TARGET package0.event_file(SET 
FILENAME=N'C:\TRACE\XE_MONITOR_ALTER_TABLE.xel')
GO

--Alteração online
ALTER TABLE Pessoa
ADD StatusCli INT NOT NULL DEFAULT 1
GO
--Alteração offline
ALTER TABLE Pessoa
ADD ColID UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID()

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 15 – Monitorando parâmetros de conexão com o SQL Server

Galera,

No vídeo de hoje quero compartilhar com vocês um problema de performance devido à alteração dos parâmetros de conexão utilizados com SQL Server e que consegui resolver utilizando o XEvents.

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

 

Highway to Hell – Extended Events – Parte 14 – Monitorando processo de rebuild online

Galera,

Hoje quero continuar falando sobre indexação e mostrar para vocês como criar uma sessão de monitoração para acompanhar o progresso de um rebuild online.

Caso tenha interesse em reproduzir o cenário do vídeo, basta realizar o download do script:

Highway to Hell – Extended Events – Monitorando processo de rebuild online

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 13 – Aumento na utilização de memória

Galera,

No vídeo de hoje quero demonstrar como utilizar o XEvents para encontrar consultas que estejam causando o aumento na alocação de memória RAM pelo SQL Server.

Os scripts utilizados no vídeo estão disponíveis no link abaixo:

Highway to Hell – Extended Events – Parte 13

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

Highway to Hell – Extended Events – Parte 12 – Encontrando funcionalidades depreciadas

Galera,

Antes de mais nada quero desejar um excelente ano de 2015 e que todos tenhamos muitos projetos e objetivos para correr atrás.

No primeiro vídeo deste ano quero mostrar como utilizar o XEvents para realizar um levantamento de quais as funcionalidades que estão depreciadas na nova versão do SQL Server e podem causar problemas em um projeto de migração.

Caso tenha interesse em criar o ambiente que utilizei no vídeo, basta utilizar o script:

--Criação da sessão de monitoração
CREATE EVENT SESSION [XE_DEPREC_FEATURES] ON SERVER 
ADD EVENT sqlserver.deprecation_announcement(
    ACTION(sqlserver.database_name,sqlserver.session_id,sqlserver.sql_text)),
ADD EVENT sqlserver.deprecation_final_support(
    ACTION(sqlserver.database_name,sqlserver.session_id,sqlserver.sql_text)) 
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
--Utilizando funcionalidades depreciadas no SQL Server 2014
USE AdventureWorks2012
GO
CREATE TABLE Tb_Teste
(Codigo INT, Nome TEXT)
GO
SP_HELPDEVICE
GO
SP_CHANGE_USERS_LOGIN 'AUTO_FIX'
GO
--Análise dos eventos coletados
SELECT 
    *,
    CAST(target_data AS XML) 
FROM 
    sys.dm_xe_session_targets 

--http://msdn.microsoft.com/en-us/library/ms143729.aspx

Espero que gostem e não deixem de realizar sua inscrição no blog e também no canal do Youtube para receber em primeira mão todos os novos posts e vídeos.

Grande abraço.

Highway To Hell – Extended Events

E ai galera, tudo bem com vocês?

Festas de final de ano chegando e aquela correria de sempre não é?

No post dessa semana quero disponibilizar todos os vídeos que publiquei até agora da nossa série sobre extended events e facilitar para quem não conseguiu acompanhar desde o início:

Parte 1 – Introdução
Parte 2 – Monitorando Deadlocks
Parte 3 – Arquitetura do XEvents
Parte 4 – Monitorando quais consultas utilizam mais o recurso de paralelismo
Parte 5 – Metadados dos XEvents
Parte 6 – Monitorando erros do SQL Server com o XEvents
Parte 7 – Monitorando Sort Warnings
Parte 8 – Quantidade de Batchs por banco de dados
Parte 9 – Entendendo o system_health
Parte 10 – Monitorando transações
Parte 11 – Descobrindo problemas de I/O

Não deixei de fazer sua inscrição no blog para continuar acompanhando a série e todos os novos posts.

Grande abraço a todos.

 

Highway to Hell – Extended Events – Parte 11 – Encontrando problemas de I/O

Galera,

No vídeo dessa semana quero demonstrar como consegui diagnosticar e resolver um problema de alta utilização de I/O através de uma sessão de monitoração do XEvents.

Vamos utilizar o evento database_file_size_change para encontrar quais comandos T-SQL estão causando o crescimento dos arquivos de dados de forma excessiva.

Caso tenha interesse em recriar o cenário descrito no vídeo é só fazer download do arquivo:

Highway To Hell – Encontrando problemas de I/O

Espero que gostem e não deixem de comentar, enviar sugestões, críticas e ideias para os próximos vídeos.

Grande abraço.

 

Highway to Hell – Extended Events – Parte 10 – Monitorando transações

Galera,

No vídeo dessa semana quero demonstrar mais uma monitoração que utilizei para diagnosticar e resolver um problema de performance.

Vamos utilizar o XEvents para monitorar transações que foram iniciadas e não foram finalizadas utilizando o target pair matching.

Caso tenha interesse em recriar o cenário do vídeo, basta fazer o download do arquivo abaixo:

Highway to Hell – Monitorando Transações

Não deixe de fazer sua inscrição no blog para receber os novos posts.

Grande abraço a todos.