Arquivo

Archive for the ‘SQL Database’ Category

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.

Anúncios

Highway to Hell – Azure SQL Datawarehouse – Criando tabelas

E ai pessoal, tudo bem?

No vídeo de hoje quero mostrar para vocês como podemos criar nossas tabelas no SQL Datawarehouse e também como alterar o tipo de distribuição de uma tabela já existente.

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.

MASTERING YOUR SQL SERVER ENVIRONMENT – Quer tornar-se um especialista em 2019?

E ai pessoal, tudo bem?

Já estão abertas as inscrições para o treinamento MASTERING YOUR SQL SERVER ENVIRONMENT que ministro pela Vita Database Solutions!!!!

Montei esse treinamento com o intuito de formar um profissinal diferenciado, que consiga analisar e discutir detalhadamente como funcionam todos os componentes existentes no SQL Server e como garantir que os recursos de hardware (CPU, Memória e Disco) sejam utilizados da melhor maneira possível.

Com os tópicos discutidos neste treinamento você estará 100% apto a planejar e implementar uma solução de banco de dados utilizando o SQL Server além de também poder executar tarefas mais complexas, tais como resolução de problemas (troubleshooting) e otimização de desempenho em um ambiente OnPremisse.

Também preciso adiantar que TODO o material foi revisado e atualizado para refletir as novidades do SQL Server 2017 e também do SQL Server 2019, então venha preparado para uma discussão de SQL Server Internals no mais alto nível!!!!!

Se quiser saber mais detalhes sobre o treinamento é só acessar https://www.vitadbsolutions.com/mastring-your-sql-server-environmen

Não deixe de aproveitar essa oportunidade e mande logo um email para contato@vitadbsolutions.com para reservar a sua vaga.

Espero todos vocês no treinamento 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.

SQL Saturday #811 – Rio de Janeiro

E ai pessoal, tudo bem?

Estou muito feliz em compartilhar com todos vocês que estarei novamente participando de mais um SQL Saturday no Rio de Janeiro.

A edição de 2018 acontecerá no dia 24/11, na INFNET, a partir das 08h00 e teremos excelentes palestras durante todo o dia para que está interessado em dominar as tecnologias da plataforma de dados da Microsoft.

Se ainda não fez sua inscrição é só acessar o link https://www.sqlsaturday.com/811/RegisterNow.aspx e aproveitar um dia todo com os maiores profissionais de SQL Server a comunidade brasileira.

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.

Gravação do WebCast – ARQUITETURA LAMBDA EM BIG DATA E PROCESSAMENTO EM TEMPO REAL COM STREAM ANALYTICS E POWER BI

Fala galera, tudo bem?

Já está disponível a gravação do webcast que tivemos no SQLManiacs, sobre a arquitetura Lambda e o processamento em tempo real com Stream Analytics.

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.

WebCast – ARQUITETURA LAMBDA EM BIG DATA E PROCESSAMENTO EM TEMPO REAL COM STREAM ANALYTICS E POWER BI

E ai pessoal, tudo bem?

Interessados em aprender um pouco mais sobre as tecnologias que estão em uso para o processamento da informação em soluções de BigData?

Então não percam no próximo dia 18/10, a partir das 20h, o webcast com o Paulo Ricardo sobre ARQUITETURA LAMBDA EM BIG DATA E PROCESSAMENTO EM TEMPO REAL COM STREAM ANALYTICS E POWER BI!!!!!!

Para participar é só fazer a sua inscrição através do link:

FAÇA SUA INSCRIÇÃO AGORA!!!!!!

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.

Dicas para um DBA Iniciante – Estimativa de crescimento do banco de dados

E ai pessoal!!!!!

Hoje quero compartilhar com vocês um script que utilizo para estimar qual a taxa de crescimento de um banco de dados através dos tamanhos dos seus backups.

 

DECLARE @endDate datetime, @months smallint;
SET @endDate = GetDate();  -- Include in the statistic all backups from today
SET @months = 6;           -- back to the last 6 months.

;WITH HIST AS
   (SELECT BS.database_name AS DatabaseName
          ,YEAR(BS.backup_start_date) * 100
           + MONTH(BS.backup_start_date) AS YearMonth
          ,CONVERT(numeric(10, 1), MIN(BF.file_size / 1048576.0)) AS MinSizeMB
          ,CONVERT(numeric(10, 1), MAX(BF.file_size / 1048576.0)) AS MaxSizeMB
          ,CONVERT(numeric(10, 1), AVG(BF.file_size / 1048576.0)) AS AvgSizeMB
    FROM msdb.dbo.backupset as BS
         INNER JOIN
         msdb.dbo.backupfile AS BF
             ON BS.backup_set_id = BF.backup_set_id
    WHERE NOT BS.database_name IN
              ('master', 'msdb', 'model', 'tempdb')
          AND BF.file_type = 'D'
          AND BS.backup_start_date BETWEEN DATEADD(mm, - @months, @endDate) AND @endDate
    GROUP BY BS.database_name
            ,YEAR(BS.backup_start_date)
            ,MONTH(BS.backup_start_date))
SELECT MAIN.DatabaseName
      ,MAIN.YearMonth
      ,MAIN.MinSizeMB
      ,MAIN.MaxSizeMB
      ,MAIN.AvgSizeMB
      ,MAIN.AvgSizeMB 
       - (SELECT TOP 1 SUB.AvgSizeMB
          FROM HIST AS SUB
          WHERE SUB.DatabaseName = MAIN.DatabaseName
                AND SUB.YearMonth < MAIN.YearMonth
          ORDER BY SUB.YearMonth DESC) AS GrowthMB
FROM HIST AS MAIN
ORDER BY MAIN.DatabaseName
        ,MAIN.YearMonth

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.