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
  1. Jerfeson
    11/03/2015 às 10:10

    Muito bom e esclarecedor Vitor o vídeo.

    Vou ser sincero, ainda uso muito pouco a nova feature do SQL Server Extended Events, porém já considero uma das melhores invenções das novas versões da Microsoft a titulo de tunning. Acompanho sempre seus vídeos que me ajudam buscar aprofundar meus conhecimentos na área de adm de banco e percebo que tem me ajudado muito.

    Parabéns.

    Um detalhe, criei o evento de monitoramento no meu ambiente 2012 e ao utilizar o SELECT pra visualizar os resultados a consulta não me informou as querys problemáticas que estão causando SCAN no ambiente. Ressalto que utilizei as mesmas instruções de criação do Evento, alterando apenas o ID do banco, que no meu caso seria database_id = 8.

    Uma outra dúvida é sobre a quantidade SCAN que são gerados no evento. Na primeira vez que analisei o resultado o contador me retornou 86 SCAN já na segunda 18. Isso está relacionado pelo motivo das consultas estarem com seu plano já em cache e com isso proporcionou uma divergência na quantidade de SCAN?

    Abraços!

    • 11/03/2015 às 12:51

      Grande Jerfeson, tudo bem contigo?

      Pode me mandar o script da sessão de XEvents que criou?

      Acredito que tenha faltado apenas incluir a action SQL_TEXT.

      Grande abraço.

  2. 11/03/2015 às 10:18

    Muito bom e esclarecedor Vitor o vídeo.

    Vou ser sincero, ainda uso muito pouco a nova feature do SQL Server Extended Events, porém já considero uma das melhores invenções das novas versões da Microsoft a titulo de tunning. Acompanho sempre seus vídeos que me ajudam buscar aprofundar meus conhecimentos na área de adm de banco e percebo que tem me ajudado muito.

    Parabéns.

    Um detalhe, criei o evento de monitoramento no meu ambiente 2012 e ao utilizar o SELECT pra visualizar os resultados a consulta não me informou as querys problemáticas que estão causando SCAN no ambiente. Ressalto que utilizei as mesmas instruções de criação do Evento, alterando apenas o ID do banco, que no meu caso seria database_id = 8.

    Uma outra dúvida é sobre a quantidade SCAN que são gerados no evento. Na primeira vez que analisei o resultado o contador me retornou 86 SCAN já na segunda 18. Isso está relacionado pelo motivo das consultas estarem com seu plano já em cache e com isso proporcionou uma divergência na quantidade de SCAN?

    Abraços!

    • 11/03/2015 às 12:51

      Grande Jerfeson, tudo bem contigo?

      Pode me mandar o script da sessão de XEvents que criou?

      Acredito que tenha faltado apenas incluir a action SQL_TEXT.

      Grande abraço.

  3. 11/03/2015 às 10:18

    Muito bom e esclarecedor Vitor o vídeo.

    Vou ser sincero, ainda uso muito pouco a nova feature do SQL Server Extended Events, porém já considero uma das melhores invenções das novas versões da Microsoft a titulo de tunning. Acompanho sempre seus vídeos que me ajudam buscar aprofundar meus conhecimentos na área de adm de banco e percebo que tem me ajudado muito.

    Parabéns.

    Um detalhe, criei o evento de monitoramento no meu ambiente 2012 e ao utilizar o SELECT pra visualizar os resultados a consulta não me informou as querys problemáticas que estão causando SCAN no ambiente. Ressalto que utilizei as mesmas instruções de criação do Evento, alterando apenas o ID do banco, que no meu caso seria database_id = 8.

    Uma outra dúvida é sobre a quantidade SCAN que são gerados no evento. Na primeira vez que analisei o resultado o contador me retornou 86 SCAN já na segunda 18. Isso está relacionado pelo motivo das consultas estarem com seu plano já em cache e com isso proporcionou uma divergência na quantidade de SCAN?

    Abraços!

    • 11/03/2015 às 12:50

      Grande Jerfeson, tudo bem contigo?

      Pode me mandar o script da sessão de XEvents que criou?

      Acredito que tenha faltado apenas incluir a action SQL_TEXT.

      Grande abraço.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: