sexta-feira, 29 de setembro de 2017

Uma nova DMV SQL Server 2017 sys.dm_os_enumerate_fixed_drives

Microsoft apresentou uma nova DMV Para SQL Server 2017 - sys.dm_os_enumerate_fixed_drives.
Em substituição de xp_fixeddrives

Olhando para o modo como o SQL Server evoluiu, há mudanças no SQL Server 2017 Que o demostra a importância em facilitar os utilitários de Gerenciamento em multi-plataformas Windows e Linux. 
Há algumas novas aprendizagens que eu tenho abordado enquanto experimentamos o SQL Server 2017. Nas versões anteriores do SQL Server, quando necessário identificar espaços livre na unidade era usado:
1
xp_fixeddrives
De saída simples como abaixo neste servidor que possui tem apenas Duas unidades.
Drive MB livre
 ----- -----------
 C 260245
 E 259023
No SQL Server 2017, uma nova DMV foi adicionada, o que complementa os resultados anteriores! 
Exemplo do script:
1
2
3
4
SELECT fixed_drive_path
    ,free_space_in_bytes / (1024 * 1024) 'Free Space'
    ,drive_type_desc
FROM sys.dm_os_enumerate_fixed_drives
retorno:

Como podemos compreender, o resultado é o mesmo que o procedimento avançado anterior complementado.
Desejamos ainda que a Microsoft tivesse adicionado também o espaço total em disco, que está faltando.
Quem sabe em uma próxima, grande abraços

terça-feira, 5 de setembro de 2017

SQL SERVER 2016 - Uma nova alternativa para DBCC INPUTBUFFER - sys.dm_exec_input_buffer

DBCC INPUTBUFFER foi um dos comandos dbcc mais populares para monitorar e identificar a última execução enviada de um client para uma instância do Microsoft SQL Server. Todos usamos isso há bastante tempo. No entanto, este comando DBCC sempre limitou-se aos poucos detalhes de informação. No SQL Server 2016, teremos disponivel uma nova Função de Gerenciamento Dinâmico (DMV) sys.dm_exec_input_buffer, que fornece muitos detalhes adicionais.
Anteriormente, toda vez que eu costumava executar o DBCC INPUTBUFFER, eu sempre senti que deveria ter alguns detalhes adicionais, juntamente com este, como quantas linhas as consultas são processadas ou quantos recursos eles estão consumindo. Nesta nova versão, temos muitas informações úteis junto com IDs de sessão e detalhes da execução de consultas.
Outra limitação do DBCC INPUTBUFFER foi que ele precisava ser identificado em um unico session_id e não havia nenhuma maneira em que pudéssemos juntar isso com o DMV atual para executá-lo para diversos IDs de sessão. Essa limitação também desaparece quando a nova função sys.dm_exec_input_buffer agora pode ser associada a sys.dm_exec_sessions.
Testamos executar a seguir a consulta e observar seu retorno.
1
2
3
4
5
6
7
SELECT es.session_id, ib.event_info, status, cpu_time,memory_usage, logical_reads, writes, row_count, total_elapsed_time, login_time,last_request_start_time, last_request_end_time,  host_name, program_name, login_name, open_transaction_count
FROM sys.dm_exec_sessions AS es
CROSS APPLY sys.dm_exec_input_buffer(es.session_id, NULL) AS ib
WHERE es.session_id > 50
Este é o retorno do conjunto da consulta acima:


referências:  Pinal Dave (blog.sqlauthority.com)