Arquivo da categoria: SQL Server Internals

OPORTUNIDADE IMPERDÍVEL!!!!!! – Keeping Your SQL Server AlwaysOn

Faaaaaaaaaala galera!!!!!

No vídeo de hoje quero divulgar o novo treinamento disponível na Vita Database Solution e que fala tudo o que você precisa saber sobre implementação de ambientes de alta disponibilidade, o KEEPING YOUR SQL SERVER ALWAYSON.

As inscrições já estão abertas e a primeira turma acontecerá em MAIO/2020, então não perde a chance e faz agora a sua inscrição.

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.

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.

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

[code language=”sql”]

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)

[/code]

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:

[code language=”sql”]

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
[/code]

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:

[code language=”sql”]

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

[/code]

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:

[code language=”sql”]

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

[/code]

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.

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.

Livro do mês de Dezembro – SQL Server 2019 Revealed

Galera,

Esse mês quero indicar o SQL Server 2019 Revealed, livro escrito pelo Bob Ward e que tem todas as novidades do SQL Server 2019 (incluindo um capítulo inteirinho sobre Big Data Cluster)

Esse livro é muito bem escrito e com muitos exemplos de como utilizar as novas funcionalidades do SQL Server 2019.

É inclusive uma das referências que utilizei para o treinamento MASTERING YOUR SQL SERVER ENVIRONMENT que ministrarei em Janeiro/2020.

Se você ainda não fez sua inscrição e tem interesse em tornar-se um DATAMASTER, não deixe passar essa oportunidade e acesse o link para mais detalhes

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.

Nuvem, o que você precisa saber para não perder seu emprego de DBA.

Galera, tudo bem?

Quero convidá-los para participar de um grande evento que acontecerá no próximo Domingo (15/12), das 08h00 até as 18h00 e que tem como principal motivação ajudar a pequena Valentina 

O evento será em São Paulo, na Avenida Angélica, 2318 – CJ 11 e teremos grandes profissionais falando sobre como o cloud computing  influencia a sua vida de DBA.

IMPERDÍVEL, NÃO É MESMO!!!!!!

Para participar é só adquirir seu ingresso através do link https://www.eventbrite.com.br/e/nuvem-o-que-voce-precisa-saber-para-nao-perder-seu-emprego-de-dba-tickets-84176182227.

Lembrando que 100% do valor arrecado será para ajudar no tratamento da Valentina, galera.

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.