Arquivo

Archive for the ‘Troubleshooting’ Category

Dicas para um DBA Iniciante – Utilizando notebooks com o Azure Data Studio

Fala galera!!!!

No vídeo de hoje quero demonstrar como podemos utilizar a ideia dos notebooks que está disponível no Azure Data Studio.

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

Grande abraço a todos.

Anúncios

WebCast – What’s New: Query Performance Insights

Fala pessoal!!!!!!

Quero convidar a todos para participarem do nosso Webcast de Abril, pois nessa edição teremos o Pedro Lopes (o cara do Microsoft Tiger Team) falando sobre as novidades de performance no SQL Server.

Não deixe essa oportunidade passar e faça a sua inscrição AGORA, através do link do evento:

https://www.sympla.com.br/whats-new-query-performance-insights__497681

Espero todos vocês no evento e não deixem de inscreverem-se no blog, no canal do youtube, no grupo de discussão SQLManiacs  e em nosso grupo no TELEGRAM.

Grande abraço a todos.

Utilizando o SSMS para comparar planos de execução

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar como podemos utilizar o SSMS para comparar dois planos de execução e analisar algumas métricas que mostram o quanto o processo de tuning foi eficiente.

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

Grande abraço a todos.

Dicas para um DBA Iniciante – Importando um arquivo XEL para uma tabela

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar como podemos importar o restulado de uma monitoração utilizando o XEvents para uma tabela afim de facilitar a análise dos dados utilizando a linguagem T-SQL.

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

Grande abraço a todos.

Webcast – Planejando um ambiente SQL Server de alta performance e missão crítica

Fala galera!!!!!

Já está disponível a gravação do evento que participei com o pessoal do SQLNorte no qual falamos muito sobre como planejar e configurar um ambiente SQL Server de alta performance e missão crítica.

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

Grande abraço a todos.

SQLNorte – Planejando um ambiente SQL Server de alta performance e missão crítica

Fala pessoal, tudo bem?

Quero convidá-los para participar do webcast que farei junto com a galera do SQLNorte, no dia 28/03 (à partir das 21h).

Nesse bate papo discutiremos sobre as melhores práticas para planejar um ambiente de banco de dados de missão crítica.

Caso tenha interesse em participar, basta acessar o link http://bit.ly/SQLNORTE e estar pronto para muita informação.

Espero todos no evento e não deixem de inscreverem-se no blog, no canal do youtube, no grupo de discussão SQLManiacs  e em nosso grupo no TELEGRAM.

Grande abraço a todos.

Dicas para um DBA Iniciante – Listando detalhes sobre conexões no SQL Server

E ai pessoal, tudo bem?

Hoje quero compartilhar um script muito interessante que necessitei utilizar em uma situação na qual precisava listar detalhes das conexões abertar com um servidor de banco de dados SQL Server e quais os erros que cada conexão estava recebendo.

Para conseguir essas informações utilizei a sessão system_health do extended events, lendo as informações disponíveis no RING BUFFER.

Declare @LanguageID int;

Select @LanguageID = lcid
From sys.syslanguages
Where name = @@Language;

WITH RingBufferXML
As (SELECT CAST(record as xml) AS RecordXML
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type= 'RING_BUFFER_CONNECTIVITY'),
RingBufferConnectivity
As (SELECT x.y.value('(/Record/@id)[1]', 'int') AS [RecordID],
x.y.value('(/Record/ConnectivityTraceRecord/RecordType)[1]', 'varchar(max)') AS RecordType,
x.y.value('(/Record/ConnectivityTraceRecord/RecordTime)[1]', 'datetime') AS RecordTime,
x.y.value('(/Record/ConnectivityTraceRecord/SniConsumerError)[1]', 'int') AS Error,
x.y.value('(/Record/ConnectivityTraceRecord/State)[1]', 'int') AS State,
x.y.value('(/Record/ConnectivityTraceRecord/Spid)[1]', 'int') AS SPID,
x.y.value('(/Record/ConnectivityTraceRecord/RemoteHost)[1]', 'varchar(max)') AS RemoteHost,
x.y.value('(/Record/ConnectivityTraceRecord/RemotePort)[1]', 'varchar(max)') AS RemotePort,
x.y.value('(/Record/ConnectivityTraceRecord/LocalHost)[1]', 'varchar(max)') AS LocalHost,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/TotalTime)[1]', 'int') AS TotalTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/EnqueueTime)[1]', 'int') AS EnqueueTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/NetWritesTime)[1]', 'int') AS NetWritesTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/NetReadsTime)[1]', 'int') AS NetReadsTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/Ssl/TotalTime)[1]', 'int') AS SslTotalTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/Sspi/TotalTime)[1]', 'int') AS SspiTotalTime,
x.y.value('(/Record/ConnectivityTraceRecord/LoginTimersInMilliseconds/TriggerAndResGovTime)[1]', 'int') AS TriggerAndResGovTime
FROM RingBufferXML
CROSS APPLY RecordXML.nodes('//Record') AS x(y))
SELECT RBC.*, m.text
FROM RingBufferConnectivity RBC
LEFT JOIN sys.messages M ON
RBC.Error = M.message_id AND M.language_id = @LanguageID
WHERE RBC.RecordType IN ('Error', 'LoginTimers')
ORDER BY RBC.RecordTime DESC;
 

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

Grande abraço a todos.