Resultados da pesquisa

Keyword: ‘highway to hell’

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.

Anúncios

Highway to Hell – Extended Events – Parte 20 – Monitorando throughput do processo de backup

Galera,

No vídeo de hoje quero demonstrar como utilizar uma sessão de monitoração do XEvents para acompanhar o andamento de um processo de backup e medir sua velocidade.

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 19 – Configurando opções em uma event session

Galera,

No vídeo de hoje quero discutir com vocês as principais opções que existem em uma sessão de monitoração e como podem ser configuradas para garantir uma alta performance durante a coleta de eventos.

Caso tenha interesse em conhecer um pouco melhor a arquitetura e o ciclo de vida de uma sessão de monitoração dos XEvents, basta acessar o link abaixo:

Highway To Hell – Extended Events – Parte 3

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

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.