Les Data Management Views et les Data Management Functions nous permettent de suivre l'activité de nos instances SQL Server, de diagnostiquer des problèmes de performance.
sys.dm_db_index_operational_stats et sys.dm_db_index_usage_stats nous renseignent sur l'activité de la base de donnée, les index réellement utiles, les objets qui supportent du verrouillage …
6. #JSS2015
Prérequis : heap, index clustered et non clustered
Clustered Index Structures :
https://msdn.microsoft.com/en-
us/library/ms177443.aspx
400
7. #JSS2015
• Compteurs de performance et DMVs
– JSS 2014 : Mes favoris
• SQL Server 2016 CTP3 : 219 DMVs/DMFs
– Des nouveautés
– Mais … bien sur de connaitre les « basiques » ???
sys.dm_os_buffer_descriptors
sys.dm_exec_requests
sys.dm_exec_connections
sys.dm_exec_sessions
sys.dm_exec_sql_text
sys.dm_exec_query_plan
sys.dm_tran_locks
sys.dm_exec_procedure_stats
sys.dm_exec_query_stats
Sys.dm_exec_function_stats
sys.dm_exec_trigger_stats
sys.dm_os_wait_stats
sys.dm_os_latch_stats
sys.dm_os_waiting_tasks
Troubleshooting …
400
8. #JSS2015
Agenda : 3 DMOs …
• Pourquoi ?
– Quantifier les opérations sur
les index
– Déterminer les index les plus
utilisés (ou pas)
– Comprendre le
comportement et les
implications des
mouvements de données
• Comment ?
– Des démos …
400
9. #JSS2015
3 DMOs …
sys.dm_db_index_usage_stats
• Opérations sur les index
• User_scans, user_seeks, user_lookups, user_updates
sys.dm_db_index_operational_stats
• Locks, Latches, methods d’accès …
• (non)leaf_insert_count, (non)leaf_delete_count, (non)leaf_update_count,
leaf_ghost_count,(non)leaf_allocation_count, forwarded_fetchcount, row_lock_count,
row_lock_wait_count, row_lock_wait_in_ms, …
sys.dm_db_index_physical_stats
• Taille et fragmentation des index
• Index_depth, index_level, avg_fragmentation_in_percent, page_count,
avg_page_space_used_in_percent, record_count, ghost_record_count,
(min/max/avg)_record_size_in_bytes, forwarded_record_count
10. #JSS2015
Démos : le menu …
• Select
– Scan, Seek, Lookup
• Insert
– Index inutiles
• Update
– Forwarded records
• Delete
– Ghost records
• Locks
– Row_lock_wait_in_ms
• Lock Escalation
– Tables partitionnées
• Latches
– page_latch_wait_in_ms
18. #JSS2015
Conclusion
• Comprendre les informations retournées par
les DMVs ou DMFs est crucial pour
déterminer l’utilité des index et la manière
dont ils sont utilisés
• L’analyse des données renvoyées peut
prendre du temps !