#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
@GUSS_FRANCE
#JSS2015
Les journées
SQL Server 2015
Un événement organisé par GUSS
Eradication des deadlocks
Sarah Bessard
#JSS2015
Merci à nos sponsors
#JSS2015
Sarah Bessard
Speaker
 Société :
 Expérience MSSQL : ~ depuis 2006, SQL Server 7 à 2014
 Site / Blog : http://...
#JSS2015
 Locking
 Blocking
 Deadlock
 Détection
 Scénarios
 Résolutions
Agenda
#JSS2015
Locking
Mécanisme de verrouillage interne
• Synchronisation des accès simultanés à une même
ressource en conserva...
#JSS2015
Données
Incohérence transactionnelle Description
Lectures inconsistantes Lectures non validées
Lectures non repro...
#JSS2015
Effets de la concurrence
L o c k i n g
B l o c k i n g
D e a d l o c k
Performance et issue des transactions
#JSS2015
Locking
ResourceProcess Table ou ligne(s)
#JSS2015
Ressource Description
RID Identifiant d’une ligne
Key Ligne ou plage de lignes dans un index
Page Page de 8Ko de ...
#JSS2015
Mode Description
Shared (S) Lecture (SELECT)
Update (U) Prévenir une mise à jour (mode demande)
Exclusive (X) Mis...
#JSS2015
Blocking
Resource
Process 1
Process 2
#JSS2015
Deadlock
Resource A
Process 1
Process 2
Resource B
#JSS2015
Deadlock - Victime
Resource A
Process 1
Process 2
Resource B
X
#JSS2015
#JSS2015
Resource Format
Table TAB: DatabaseID:ObjectID:IndexID
Page PAGE:DatabaseID:FileID:PageID
Key Key:DatabaseID:Hash...
#JSS2015
Bilan
FK, désactivation cascade, check
Bookmark (RID/Key Lookup), Index Scan…
NOLOCK, UPDLOCK, mode optimiste
>= ...
#JSS2015#JSS2015
Les évaluations des sessions,
c’est important !!
http://GUSS.Pro/jss
#JSS2015
Questions
#JSS2015
Merci à nos volontaires…
#JSS2015#JSS2015
Prochain SlideShare
Chargement dans…5
×

[JSS2015] Eradiction des deadlocks

261 vues

Publié le

On entend dire ici et là, que le deadlock est propre au fonctionnement interne de SQL Server ou encore qu'il résulte d'une problématique purement applicative. Et non, le deadlock n'est pas une fatalité.
Au cours de cette session, nous aborderons les méthodes pour les détecter et surtout les éviter en analysant les différents scénarios possibles au travers d'exemples simplifiés

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
261
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • On parlait des speakers, il y a une chose qui leur tient à cœur !
  • [JSS2015] Eradiction des deadlocks

    1. 1. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS @GUSS_FRANCE
    2. 2. #JSS2015 Les journées SQL Server 2015 Un événement organisé par GUSS Eradication des deadlocks Sarah Bessard
    3. 3. #JSS2015 Merci à nos sponsors
    4. 4. #JSS2015 Sarah Bessard Speaker  Société :  Expérience MSSQL : ~ depuis 2006, SQL Server 7 à 2014  Site / Blog : http://www.concatskills.com  Mail : sarah.bessard.pro@gmail.com
    5. 5. #JSS2015  Locking  Blocking  Deadlock  Détection  Scénarios  Résolutions Agenda
    6. 6. #JSS2015 Locking Mécanisme de verrouillage interne • Synchronisation des accès simultanés à une même ressource en conservant l’intégrité des données • Verrouillage basé par défaut sur un mode pessimiste (transactions concurrentes en attente)
    7. 7. #JSS2015 Données Incohérence transactionnelle Description Lectures inconsistantes Lectures non validées Lectures non reproductibles Relecture différente pour des SELECT identiques et séquentiels Lectures fantômes Données modifiées entre deux exécutions de requête Mises à jour perdues Perte de données lors de n mises à jour Effets de la concurrence
    8. 8. #JSS2015 Effets de la concurrence L o c k i n g B l o c k i n g D e a d l o c k Performance et issue des transactions
    9. 9. #JSS2015 Locking ResourceProcess Table ou ligne(s)
    10. 10. #JSS2015 Ressource Description RID Identifiant d’une ligne Key Ligne ou plage de lignes dans un index Page Page de 8Ko de data ou d’index Extent Groupe contiguës de 8 pages de data ou d’index Table Intégralité d’une table (data + index) Database Base de données Lock – Type (granularité)
    11. 11. #JSS2015 Mode Description Shared (S) Lecture (SELECT) Update (U) Prévenir une mise à jour (mode demande) Exclusive (X) Mise à jour (mode propriétaire) Intent Hiérarchie de lock : Intent Shared (IS), Intent Update (IU), Intent Exclusive (IX), Shared with Intent Exclusive (SIX)… Key-Range Protège la plage de lignes en lecture lorsque le niveau d'isolation des transactions est SERIALIZABLE Schema Opérations impactant le schema d’une BDD Bulk Update Opération BULK (TABLOCK) Lock – Mode
    12. 12. #JSS2015 Blocking Resource Process 1 Process 2
    13. 13. #JSS2015 Deadlock Resource A Process 1 Process 2 Resource B
    14. 14. #JSS2015 Deadlock - Victime Resource A Process 1 Process 2 Resource B X
    15. 15. #JSS2015
    16. 16. #JSS2015 Resource Format Table TAB: DatabaseID:ObjectID:IndexID Page PAGE:DatabaseID:FileID:PageID Key Key:DatabaseID:HashValueForIndexKey (HOBT_ID) Row RID:DatabaseID:FileID:PageID:Slot (row) Compile DatabaseID:ObjectID [[COMPILE]] Wait Resource
    17. 17. #JSS2015 Bilan FK, désactivation cascade, check Bookmark (RID/Key Lookup), Index Scan… NOLOCK, UPDLOCK, mode optimiste >= 5000 lignes, manque de ressources Contraintes Indexation Isolation / Locking Hint Escalade Même ordre d’appel des objets (PS) La plus courte possible, pas d’intéraction utilisateur Séquence Transaction …Refactoring de code
    18. 18. #JSS2015#JSS2015 Les évaluations des sessions, c’est important !! http://GUSS.Pro/jss
    19. 19. #JSS2015 Questions
    20. 20. #JSS2015 Merci à nos volontaires…
    21. 21. #JSS2015#JSS2015

    ×