O documento apresenta uma introdução sobre DMVs no SQL Server, agrupando-as em 4 categorias principais: execução, transacional, índices e IO, e SQL OS. É fornecida uma demonstração de como usar algumas DMVs específicas para monitorização e otimização de desempenho.
4. DMV’s
A informação é obtida via queries T-SQL
# 4
SELECT
[name],
CASE [type]
WHEN 'V' THEN 'DMV'
WHEN 'IF' THEN 'DMF'
END AS [DMO Type]
FROM [sys].[sysobjects]
WHERE [name] LIKE 'dm_%';
5. DMV’s
SQL Server 2005 89 DMO’s
SQL Server 2008 136 DMO’s
SQL Server 2008 R2 142 DMO’s
SQL Server 2012 177 DMO’s
# 5
6. DMV’s
Podemos agrupar as DMO’s em 4 grupos
# 6
• Execução ligações, sessões, requests e queries
• Transacional locking, blocking e queries
• Índices e IO Utilização de índices,
fragmentação, atividade de IO
• SQL OS CPU, IO, memória e waits
7. DMV’s
Existem DMF’s que funcionam como helpers
# 7
sys.dm_exec_sql_text
Retorna a query T-SQL de um sql_handle
Sys.dm_exec_query_plan
Retorna o plano de execução de um plan_handle
10. DMV’s
# 10
sys.dm_exec_connections
Informação sobre tráfego de rede, protocolos e atributos da
fonte da ligação
sys.dm_exec_sessions
Informação sobre as sessões dos utilizadores e sessões
internas
sys.dm_exec_requests
Estatísticas sobre os vários pedidos (execução de queries)
14. DMV’s
# 14
sys.dm_exec_query_plan
Retorna um plano de execução que se encontre na cache
Está no formato XML (XML type)
Os planos que obtemos da cache podem ser diferentes dos
que nós obtemos no nosso computador derivado a vários
fatores
Podemos gravar o plano num ficheiro com a extensão
.SQLPLAN
16. DMV’s
# 16
sys.dm_tran_locks
Informação atual do lock manager
sys.dm_tran_session_transactions
Tem como principal função servir de relação com as DMV’s
das sessões e as das transações
sys.dm_tran_active_transactions
Informação sobre as transações ativas na instância
sys.dm_tran_database_transactions
A mesma informação que a anterior mas ao nível da base
de dados
19. DMV’s
# 19
sys.dm_db_index_usage_stats
Informações estatísticas sobre a utilização dos índices
sys.dm_db_index_operational_stats
Informações sobre IO, locking, latching relativo aos índices
sys.dm_db_missing_index_details
Informação sobre índices em falta indicados pelo optimizer
21. DMV’s
# 21
Adaptive Index Defrag
(Blog do Ezequiel - Portuguese PFE SQL Server Team)
http://blogs.msdn.com/b/blogdoezequiel/archive/2011/07/03/
adaptive-index-defrag.aspx#.UZ0DnEq953U
22. DMV’s
# 22
sys.dm_db_partition_stats
Informação de páginas e número de registos por partição
sys.dm_io_virtual_file_stats
Informação estatística dos ficheiros de dados e de log
sys.dm_io_pending_io_requests
Pedidos de IO pendentes
sys.dm_db_file_space_usage
Informação do espaço usado por cada ficheiro da base de
dados
25. DMV’s
# 25
sys.dm_os_wait_stats
Informação sobre os waits que ocorreram nas várias threads
sys.dm_os_performance_counters
Performance counters relativos ao SQL SERVER
sys.dm_os_sys_info
Informações sobre o servidor e os recursos disponíveis
sys.dm_os_sys_memory
Informação proporcionada pelo SO sobre a memoria
28. Recursosúteis
# 28
DMOs as a Shortcut for Performance Tuning
Pass Summit 2011 (Grant Fritchey)
DMV's as a Shortcut to Procedure Tuning
Pass Summit 2010 (Grant Fritchey)
Glenn Berry's SQL Server Performance
Blog