Arquivo da categoria: SQL Server 2014

Projeto Titan – Monitorando seu ambiente de banco de dados de forma PROATIVA

Fala galera, tudo bem?

Muita gente me perguntou sobre a ferramenta de monitoração que utilizamos aqui na Vita Database Solutions em nossos clientes e por isso resolvi fazer um vídeo rápido explicando um pouco mais sobre o TITAN.

Caso queira fazer um teste na sua empresa é só entrar em contato através do email contato@vitadbsolutions.com e agendar uma reunião.

Espero que tenham gostado 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.

LiveCast – Aprenda como resolver os 5 principais problemas do seu ambiente de banco de dados

Galera, tudo bem?

No dia 25/03 fizemos uma LIVE sensacional na qual demonstrei como resolver os 5 principais problemas que acontecem em um ambiente de banco de dados SQL Server.

A gravação já está disponível e caso tenha interesse no Azure Notebook que criei para a LIVE é só fazer o download AQUI.

Espero que tenha gostado 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.

#TodosJuntosContraOCoronaVirus – Aprenda como resolver os 5 principais problemas do seu ambiente de banco de dados

Fala galera, tudo bem com vocês?

Espero que estejam todos bem e cuidando ao máximo da sua saúde e também dos seus familiares nesse momento dificil que estamos passando.

Quero tentar ajudá-los de alguma maneira e em conjunto com a Vita Database Solutions, farei um webcast no dia 25/03, á partir das 12h30, no qual explicarei de forma bem prática como resolver os 5 principais problemas que acontecem em um ambiente de banco de dados SQL Server.

Para acompanhar é só acessar o link https://global.gotomeeting.com/join/615208973

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.

SQLManiacs – Architecting a Modern Business Intelligence Data Platform

Fala galera, tudo bem?

No dia 05/03, à partir das 12h (isso mesmo no horário do seu almoço), teremos uma sessão imperdível com o MCM e MVP Warner Chavez falando sobre como desenvolver uma moderna solução de BI.

Para participar do evento é só acessar o link https://global.gotomeeting.com/join/923522925 e aproveitar todo o excelente conteúdo que será apresentado em mais essa sessão.

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.

Be a DataMaster – Qual o maior consumidor do TEMPDB na sua instância?

Fala galera, beleza?

No vídeo de hoje quero demonstrar como você pode, de forma bem simples, encontrar as sessões que estão utilizando de forma excessiva o TEMPDB.

Segue o script utilizado no vídeo


SELECT
sys.dm_exec_sessions.session_id AS [SESSION ID],
(user_objects_alloc_page_count * 8) AS [SPACE Allocated FOR USER Objects (in KB)],
(internal_objects_alloc_page_count * 8) AS [SPACE Allocated FOR Internal Objects (in KB)],
DB_NAME(sys.dm_exec_sessions.database_id) AS [DATABASE Name],
HOST_NAME AS [System Name],
program_name AS [Program Name],
login_name AS [USER Name],
status,
row_count AS [ROW COUNT]
FROM
sys.dm_db_session_space_usage
INNER join
sys.dm_exec_sessions
ON
sys.dm_db_session_space_usage.session_id = sys.dm_exec_sessions.session_id
WHERE
sys.dm_exec_sessions.Session_id > 50

--DBCC INPUTBUFFER(53)

Espero que tenham gostado 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.

Be a DataMaster – Criando uma monitoração dos Wait Types da sua instância

Fala galera!!!!!

Hoje quero demonstrar como implementei em um cliente da Vita Database Solutions uma coleta automatizada dos Wait Types ocorrendo em uma instância de banco de dados SQL Server.

Caso queira implementar em seu ambiente, basta utilizar o seguinte script:


USE [master]
go
CREATE TABLE WaitStats_Collection
(DateMonitored DATETIME2, Wait_Type VARCHAR(200),
Waiting_Tasks_Count INT,Percentage_WaitTime DECIMAL(9,2))
GO

CREATE PROCEDURE PR_COLLECT_WAITSTATS
AS
INSERT INTO WaitStats_Collection
SELECT
GETDATE() AS [DateMonitored],
wait_type AS Wait_Type,
waiting_tasks_count AS Waiting_Tasks_Count,
wait_time_ms * 100.0 / SUM(wait_time_ms) OVER() AS Percentage_WaitTime
FROM
sys.dm_os_wait_stats
WHERE
wait_type NOT IN
(N'BROKER_EVENTHANDLER',
N'BROKER_RECEIVE_WAITFOR',
N'BROKER_TASK_STOP',
N'BROKER_TO_FLUSH',
N'BROKER_TRANSMITTER',
N'CHECKPOINT_QUEUE',
N'CHKPT',
N'CLR_AUTO_EVENT',
N'CLR_MANUAL_EVENT',
N'CLR_SEMAPHORE',
N'DBMIRROR_DBM_EVENT',
N'DBMIRROR_DBM_MUTEX',
N'DBMIRROR_EVENTS_QUEUE',
N'DBMIRROR_WORKER_QUEUE',
N'DBMIRRORING_CMD',
N'DIRTY_PAGE_POLL',
N'DISPATCHER_QUEUE_SEMAPHORE',
N'EXECSYNC',
N'FSAGENT',
N'FT_IFTS_SCHEDULER_IDLE_WAIT',
N'FT_IFTSHC_MUTEX',
N'HADR_CLUSAPI_CALL',
N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
N'HADR_LOGCAPTURE_WAIT',
N'HADR_NOTIFICATION_DEQUEUE',
N'HADR_TIMER_TASK',
N'HADR_WORK_QUEUE',
N'LAZYWRITER_SLEEP',
N'LOGMGR_QUEUE',
N'MEMORY_ALLOCATION_EXT',
N'ONDEMAND_TASK_QUEUE',
N'PREEMPTIVE_HADR_LEASE_MECHANISM',
N'PREEMPTIVE_OS_AUTHENTICATIONOPS',
N'PREEMPTIVE_OS_AUTHORIZATIONOPS',
N'PREEMPTIVE_OS_COMOPS',
N'PREEMPTIVE_OS_CREATEFILE',
N'PREEMPTIVE_OS_CRYPTOPS',
N'PREEMPTIVE_OS_DEVICEOPS',
N'PREEMPTIVE_OS_FILEOPS',
N'PREEMPTIVE_OS_GENERICOPS',
N'PREEMPTIVE_OS_LIBRARYOPS',
N'PREEMPTIVE_OS_PIPEOPS',
N'PREEMPTIVE_OS_QUERYREGISTRY',
N'PREEMPTIVE_OS_VERIFYTRUST',
N'PREEMPTIVE_OS_WAITFORSINGLEOBJECT',
N'PREEMPTIVE_OS_WRITEFILEGATHER',
N'PREEMPTIVE_SP_SERVER_DIAGNOSTICS',
N'PREEMPTIVE_XE_GETTARGETSTATE',
N'PWAIT_ALL_COMPONENTS_INITIALIZED',
N'PWAIT_DIRECTLOGCONSUMER_GETNEXT',
N'QDS_ASYNC_QUEUE',
N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
N'QDS_SHUTDOWN_QUEUE',
N'REDO_THREAD_PENDING_WORK',
N'REQUEST_FOR_DEADLOCK_SEARCH',
N'RESOURCE_QUEUE',
N'SERVER_IDLE_CHECK',
N'SLEEP_BPOOL_FLUSH',
N'SLEEP_DBSTARTUP',
N'SLEEP_DCOMSTARTUP',
N'SLEEP_MASTERDBREADY',
N'SLEEP_MASTERMDREADY',
N'SLEEP_MASTERUPGRADED',
N'SLEEP_MSDBSTARTUP',
N'SLEEP_SYSTEMTASK',
N'SLEEP_TASK',
N'SP_SERVER_DIAGNOSTICS_SLEEP',
N'SQLTRACE_BUFFER_FLUSH',
N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
N'SQLTRACE_WAIT_ENTRIES',
N'UCS_SESSION_REGISTRATION',
N'WAIT_FOR_RESULTS',
N'WAIT_XTP_CKPT_CLOSE',
N'WAIT_XTP_HOST_WAIT',
N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
N'WAIT_XTP_RECOVERY',
N'WAITFOR',
N'WAITFOR_TASKSHUTDOWN',
N'XE_TIMER_EVENT',
N'XE_DISPATCHER_WAIT',
N'XE_LIVE_TARGET_TVF'
)
AND
wait_time_ms >= 1
GO
USE [msdb]
GO
DECLARE @jobId BINARY(16)
EXEC msdb.dbo.sp_add_job @job_name=N'Automated Wait Statistics Collection',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_page=2,
@delete_level=0,
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
select @jobId
GO
EXEC msdb.dbo.sp_add_jobserver @job_name=N'Automated Wait Statistics Collection', @server_name = N'DESKTOP-OTDNR1N\BEADATAMASTER'
GO
USE [msdb]
GO
EXEC msdb.dbo.sp_add_jobstep @job_name=N'Automated Wait Statistics Collection', @step_name=N'Execute Data Collection',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_fail_action=2,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC PR_COLLECT_WAITSTATS',
@database_name=N'master',
@flags=0
GO
USE [msdb]
GO
EXEC msdb.dbo.sp_update_job @job_name=N'Automated Wait Statistics Collection',
@enabled=1,
@start_step_id=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_page=2,
@delete_level=0,
@description=N'',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa',
@notify_email_operator_name=N'',
@notify_page_operator_name=N''
GO

Espero que tenham gostado 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.

Dicas para um DBA Iniciante – Analisando uma transação em detalhes utilizando a FN_DBLOG()

Fala galera!!!!!!!

No vídeo de hoje quero demonstrar como podemos utilizar a fn_dblog() para analisar detalhadamente uma transação que esteja consumindo uma grande quantidade do arquivo de transaction log.

Segue o script utilizado no vídeo:


SELECT
[Current LSN],
[Transaction ID],
[Operation],
[Transaction Name],
[CONTEXT],
[AllocUnitName],
[Page ID],
[Slot ID],
[Begin Time],
[End Time],
[Number of Locks],
[Lock Information]
FROM sys.fn_dblog(NULL,NULL)
WHERE Operation IN
('LOP_INSERT_ROWS','LOP_MODIFY_ROW',
'LOP_DELETE_ROWS','LOP_BEGIN_XACT','LOP_COMMIT_XACT')
ORDER BY [Begin Time] DESC

Espero que tenham gostado 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.

Dicas para um DBA Iniciante – Listando dependências de objetos

E ai galera, tudo bem?

No vídeo de hoje quero discutir com vocês como podemos listar as dependências de um objeto dentro do SQL Server e também demonstrar essa solução em um cenário real que ocorreu em um dos clientes da VitaDB.

O script utilizado no vídeo está disponível abaixo:


USE AdventureWorks2012
GO
SELECT referencing_id,OBJECT_SCHEMA_NAME ( referencing_id )
+ '.' +
OBJECT_NAME(referencing_id) AS referencing_object_name,
obj.type_desc AS referencing_object_type,
referenced_schema_name + '.' +
referenced_entity_name As referenced_object_name
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS obj ON sed.referencing_id = obj.object_id
WHERE referencing_id IN (SELECT object_id FROM sys.objects WHERE type='P')
GO

Espero que tenham gostado 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 Maniacs – Vamos planejar sua carreira para 2020? / Alta Disponibilidade no SQL Server: Principais Features

Fala galera, tudo bem?

O ano já começou e está na hora de reiniciarmos as atividades do SQLManiacs, concordam?

No dia 21/01, à partir das 18h30, teremos o nosso primeiro encontro de 2020 (100% GRATUITO) e dessa vez acontecerá na FC Nuvem, na Rua Bela Cintra, 986 – 2º andar.

Nesse encontro teremos duas sessões para vocês, sendo que a primeira será comigo e falaremos sobre planejamento de carreira para 2020 e a segunda sessão será com o Marcelo Adade e falaremos sobre as principais funcionalidade de Alta Disponibilidade presentes no SQL Server.

São duas sessões imperdíveis e para participar é só fazer a sua inscrição através do link:

https://www.sympla.com.br/meetup-sqlmaniacs–fc-nuvem-vamos-planejar-sua-carreira-para-2020__738931

Quero encher a sala hein galera e conto muito com a sua presença!!!!!

Também 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.

Livro do mês de Janeiro – Expert Performance Indexing in SQL Server 2019

Fala galera, tudo bem?

Antes de mais nada quero desejar um excelente ano de 2020 para todos vocês e espero que estejam preparados para muito conhecimento e desafios que estou preparando para esse ano.

Vocês sempre pedem para falarmos mais de performance e tuning aqui no blog e no canal do Youtube e para começarmos muito bem quero indicar um excelente livro que estou lendo sobre o assunto.

O nome do livro é Expert Performance Indexing in SQL Server 2019 e aborda de forma detalhada a estrutura e o funcionamento dos diversos tipos de índice existentes no SQL Server 2019.

Espero que tenham gostado 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.