#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
@GUSS_FRANCE
3 DMV pour évaluer les index
Christophe Laporte
#JSS2015
Christophe LAPORTE
~ depuis 1997
6.5 <= SQL Server <= 2016
@conseilit
christophe_laporte@hotmail.fr
http://conseilit.wordpress.com/
#JSS2015
Merci à nos sponsors
#JSS2015
Apologies
#JSS2015
Merci à nos autres sponsors
#JSS2015
Prérequis : heap, index clustered et non clustered
Clustered Index Structures :
https://msdn.microsoft.com/en-
us/library/ms177443.aspx
400
#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
#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
#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
#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
#JSS2015
Requête SELECT - SCAN, SEEK et LOOKUP
#JSS2015
Requête INSERT
#JSS2015
Requête UPDATE
#JSS2015
Requête DELETE
#JSS2015
Verrouillage
#JSS2015
Escalade de verrous
#JSS2015
Latches
#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 !
#JSS2015#JSS2015
Les évaluations des sessions,
c’est important !!
http://GUSS.Pro/jss
#JSS2015
Merci à nos volontaires…
#JSS2015#JSS2015

[JSS2015] 3 DMV's pour evaluer les indexs

  • 1.
    #JSS2015 Les journées SQL Server2015 Un événement organisé par GUSS @GUSS_FRANCE 3 DMV pour évaluer les index Christophe Laporte
  • 2.
    #JSS2015 Christophe LAPORTE ~ depuis1997 6.5 <= SQL Server <= 2016 @conseilit christophe_laporte@hotmail.fr http://conseilit.wordpress.com/
  • 3.
  • 4.
  • 5.
    #JSS2015 Merci à nosautres sponsors
  • 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 deperformance 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 : 3DMOs … • 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 : lemenu … • 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
  • 11.
    #JSS2015 Requête SELECT -SCAN, SEEK et LOOKUP
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    #JSS2015 Conclusion • Comprendre lesinformations 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 !
  • 19.
    #JSS2015#JSS2015 Les évaluations dessessions, c’est important !! http://GUSS.Pro/jss
  • 20.
    #JSS2015 Merci à nosvolontaires…
  • 21.

Notes de l'éditeur

  • #20 On parlait des speakers, il y a une chose qui leur tient à cœur !