Arquivo da categoria: Dicas para um DBA iniciante

Dicas para um DBA Iniciante – Automatizando monitorações com o Policy-Based Management (PBM)

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar como utilizar uma das melhores funcionalidades do SQL Server (que existe desde a versão 2008) para automatizar a monitoração do seu ambiente, o Policy-Based Management (PBM).

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.

Dicas para um DBA Iniciante – Keeping Your SQL Server AlwaysON

Faaaaaaaaaala galera!!!!!

Hoje quero compartilhar com vocês mais uma dica sensacional para você que está iniciando na área de administração de banco de dados e, assim como eu, também tem o interesse de tornar-se um DATAMASTER!!!!!

Já viu 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?

Estamos com apenas mais alguma vagas em aberto para a turma que começará já NESSE SÁBADO, 09/05 das 0h as 17h.

O treinamento será 100% ONLINE e com aulas ao vivo e tenho certeza de que você aprenderá tudo o que um excelente DBA precisa saber para planejar, implementar e administrar uma solucão de ALTA DISPONIBILIDADE.

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.

Dicas para um DBA Iniciante – Monitorando o SQL Server utilizando PYTHON

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar como podemos construir uma monitoração do SQL Server utilizando a linguagem de programação Python e seus pacotes.

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.

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


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.

Dicas para um DBA Iniciante – Verificando possíveis vulnerabiliddes no seu banco de dados

Fala galera, tudo bem?

No vídeo de hoje quero demonstrar como você pode fazer uma checagem detalhada em um banco de dados SQL Server e identificar possíveis vulnerabilidade de segurança e boas práticas através do VULNERABILITY ASSESSMENT.

E se você tem algum problema de performance no seu ambiente e quer uma ajuda minha e da minha equipe aqui da Vita Database Solutions, aproveita e manda um email para CONTATO@VITADBSOLUTIONS.COM pedindo um HEALTHCHECK completo do seu ambiente, que será executado de forma GRATUITA!!!!!

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.