Os treinamentos estão totalmente atualizados para a última versão do SQL Server e também com todas as novas features do Azure SQL Database.
Caso você tenha interesse em participar das duas turmas, também receberá GRATUITAMENTE, 2 sessões de mentoria comigo, através das quais ajudarei a alcançar seus objetivos profissionais.
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.
No vídeo de hoje quero demonstrar como funciona o ACCELERATED DATABASE RECOVERY (ADR) que é mais uma nova funcionalidade do SQL Server 2019 e que vem para melhorar ainda mais a performance do processo de recovery de uma base de dados.
No vídeo de hoje quero demonstrar como podemos ter mais controle em operações de reindexação no SQL Server 2017 utilizando a funcionalidade RESUMABLE INDEXES.
Nesse primeiro vídeo quero discutir com vocês um pouco sobre cenários de utilização de um Datawarehouse e também apresentar o serviço de banco de dados no Azure para construirmos um Datawarehouse, o SQLDW.
Recentemente passei por um cenário no qual um dos servidores de um cliente apresentava momentos de extrema lentidão ao executar alguns relatórios operacionais e durante o processo de troubleshooting foi possível identificar o wait type PAGEIOLATCH ocorrendo muitas vezes.
Com esta informação mantive o foco em encontrar as consultas que utilizavam uma grande quantidade de operações de I/O e assim iniciar uma análise mais detalhada dos planos de execução entendendo a razão desta alta quantidade de operações de I/O.
Para isto utilizei a query abaixo, que quero compartilhar com vocês.
[code language=”sql”]
WITH QueryIO AS
(
SELECT TOP 1000
[Average IO] = (total_logical_reads + total_logical_writes) / qs.execution_count,
[Total IO] = (total_logical_reads + total_logical_writes),
[Execution count] = qs.execution_count,
[Individual Query] = SUBSTRING (qt.text,qs.statement_start_offset/2,
(CASE WHEN qs.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE qs.statement_end_offset END – qs.statement_start_offset)/2
),
[Parent Query] = qt.text,
DatabaseName = DB_NAME(qt.dbid)
FROM
sys.dm_exec_query_stats qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE
(total_logical_reads + total_logical_writes) / qs.execution_count > 1000
ORDER BY
[Total IO] DESC
)
SELECT
*
FROM
QueryIO
ORDER by
[Execution count] desc
[/code]
Executando a consulta no servidor de banco de dados SQL Server, obtivemos um resultado semelhante ao ilustrado na Figura 1.
Figura 1 – Consultas utilizando grande quantidade de operações de I/O
Após a análise das 5 primeiras consultas, retornadas já foi possível identificar a causa da lentidão e solucionar em definitivo o problema.
Do dia 05/07 até o dia 09/07 ocorrerá o The Developers Conference, um evento muito interessante com diversas trilhas voltadas para tecnologia.
Uma destas trilhas é específica para banco de dados, coordenada pelos MVPs Marcus Vinicius Bittencourt e Diego Nogare, e novamente terei a grande oportunidade de participar como um dos palestrantes com o tema Planejando um ambiente SQL Server de alta performance e missão crítica.
O evento ocorrerá na Universidade Anhembi Morumbi, localizada na Rua Casa do Ator, 275 na Vila Olímpia e caso tenha interesse em conhecer mais sobre o evento e também fazer sua inscrição, basta acessar o link abaixo:
Também reagendei nosso webcast sobre segurança no SQL Server 2016 para o dia 23/06, a partir das 21:00 e caso tenham interesse em participar, basta acessar o link abaixo no horário do evento:
No vídeo de hoje quero analisar com vocês o resultado da enquete sobre o tamanho do maior banco de dados existente em seu ambiente e também passar algumas dicas de como trabalhar com VLDBs.