IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

A propos de la représentation intervallaire (article SQLpro)


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut A propos de la représentation intervallaire (article SQLpro)
    Bonjour,

    J'ai lu attentivement l'article d'SQLpro sur la représentation intervallaire que je trouve très intéressant.

    Cependant, j'ai le sentiment que les procédures d'insertions et de suppressions par exemple peuvent produire des deadlocks. En effet, dans les procédures on ne verrouille pas la table entière, ou on ne fait pas un SELECT FOR UPDATE sur toutes nos lignes de l'arborescence par précaution... alors que justement en cas d'insertions ou de suppressions c'est bien toutes les lignes de la table qui sont affectées avec la mise à jour des bornes. Cela me pose donc un problème car dans ce cas, si on fait une pause de 5 secondes après:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT @bgp = NMC_BG, @bdp = NMC_BD, @nivp = NMC_NIVEAU 
    FROM T_NOMENCLATURE_NMC 
    WHERE NMC_ID = @id_parent
    Rien empêche une autre transaction de lire entre temps un résultat différent pour les bornes d'un parent donné, puisque l'isolation SERIALIZABLE n'empêche pas deux SELECTs concurrents, ce qui provoque ensuite des anomalies en REPEATABLE READ et des deadlocks en SERIALIZABLE puisque les valeurs dans la procédure sont alors faussées.

    Bien évidemment, comme les requêtes s’exécutent très rapidement il n'y a pratiquement jamais de deadlock.

    Ma question est donc, est-ce que ces procédures peuvent effectivement faire l'objet de deadlocks ?

    Merci d'avance pour vos réponses.

    Bien cordialement,
    Nicolas.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Le SELECT FOR UPDATE est un artifice de type "pis-aller" pour des SGBDR comme PostGreSQL ne respectant pas les niveaux d'isolation de la norme SQL.
    Aucun niveau d'isolation n'empêche des lectures concurrentes. Mais bloque différemment lectures et écritures en fonction des mises à jour (verrou au "statement" ou à la transaction).
    Il n'est d'ailleurs pas besoin de transactions pour mettre à jour les bornes si l'on fait un UPDATE combiné avec un CASE pour décaler dans la même instruction bornes droites et gauches.
    Une autre technique consiste à utiliser un verrouillage de niveau versionning de ligne.
    Enfin une technique connexe consiste à mettre les bornes dans une table en héritage pour découpler les mises à jour de données de production des bornes.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [Méta Données]A Propos de l'article SqlPro ...
    Par AngelFlo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/07/2006, 12h08
  2. Gestion d'arbres par représentation intervallaire
    Par brice01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/01/2006, 21h20
  3. Vos avis sur la méta-modélisation (article SQLPro)
    Par vgaudeul dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 18/10/2005, 14h26
  4. Représentation Intervallaire,
    Par Mouse dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 02/05/2005, 02h40
  5. Représentation intervallaire des listes arborescentes
    Par PMAR dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/11/2004, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo