Inicial > Não categorizado, PodCast > PodCast3 – Delete Sem Where com Fabiano Amorim e Luciano Moreira (aka Luti) – SQLInternals e Nuvem

PodCast3 – Delete Sem Where com Fabiano Amorim e Luciano Moreira (aka Luti) – SQLInternals e Nuvem

Fala galera, eu finalmente tirei do papel meu plano de começar um PodCast sobre banco de dados…

Logo

Segue o tereciro episódio que tive como convidado meu amigo Luciano Moreira, nesse Cast Conversamos bastante sobre SQL Internals, Nuvem e outras coisas…

Nesse episódio eu também falei sobre um case interessante sobre análise de uso de índices em um ambiente que trabalhei recentemente em um cliente…

Link para o vídeo no Youtube:

Espero que vocês gostem…

O script que usei foi o seguinte:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
GO

SELECT TOP 100
s.plan_id,
q.query_id,
t.query_sql_text AS QueryText,
OBJECT_NAME(q.object_id) AS parent_object,
SUM(s.count_executions) AS CountExecutions,
CONVERT(DECIMAL(18,2),AVG(s.avg_logical_io_reads)) AS AvgLogicalReads,
CONVERT(DECIMAL(18,2),AVG(s.avg_physical_io_reads)) AS AvgPhysicalReads,
CONVERT(DECIMAL(18,2),AVG(s.avg_cpu_time)) AS AvgCpuTime,
CONVERT(DECIMAL(18,2),AVG(s.avg_duration)) AS AvgDuration
FROM sys.query_store_query_text t
JOIN sys.query_store_query q
ON t.query_text_id = q.query_text_id
JOIN sys.query_store_plan p
ON q.query_id = p.query_id
JOIN sys.query_store_runtime_stats s
ON p.plan_id = s.plan_id
WHERE t.query_sql_text LIKE N’%FM_Schedule%’
GROUP BY s.plan_id,
q.query_id,
t.query_sql_text,
OBJECT_NAME(q.object_id)
ORDER BY CountExecutions DESC
GO

— Find Plan(s) Associated with a Query
SELECT t.query_sql_text, q.query_id, p.plan_id, object_name(q.object_id) AS parent_object,
CONVERT(XML, p.query_plan) AS qPlan
FROM sys.query_store_query_text t JOIN sys.query_store_query q
ON t.query_text_id = q.query_text_id
JOIN sys.query_store_plan p ON q.query_id = p.query_id
WHERE q.query_id = 4305750
— OR t.query_sql_text LIKE N’%SELECT c1, c2 FROM dbo.db_store%’
— OR object_name(q.object_id) = ‘proc_1’

Abs.

Fabiano Amorim

Anúncios
Categorias:Não categorizado, PodCast Tags:
  1. Jorge Tavares
    9 de agosto de 2019 às 16:08

    cara ultimamente uso essa query para me ajudar
    use master;

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

    SELECT TOP 20
    CAST(qs.total_elapsed_time / 100000.0 AS DECIMAL (28, 2)) AS [Total Duration (s)]
    , qs.execution_count
    , CAST(qs.total_elapsed_time / 100000.0 AS DECIMAL (28, 2)) / qs.execution_count as average
    , SUBSTRING (qt.text, (qs.statement_start_offset/2) + 1
    , ((CASE WHEN qs.statement_end_offset = -1
    THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    ELSE
    qs.statement_end_offset
    END – qs.statement_start_offset)/2) + 1)
    AS [Individual Query]
    , qt.text AS [Parent Query]
    , DB_NAME(qt.dbid) AS DatabaseName
    , qp.query_plan
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
    CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
    where qs.execution_count > 100
    ORDER BY average desc, total_elapsed_time DESC, qs.execution_count desc

  2. Wanderson Silva
    9 de agosto de 2019 às 23:57

    Muito bom!

  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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s

%d blogueiros gostam disto: