Lock data page vs. lock data row sous SQL Server 2000 SP4
2 réponses
Vincent.FRA
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des
bases de données en général... :)
On m'a parlé de deux mode d'accès aux données lors d'une requête. Le
mode "lock data page" qui lock une page entière pour accéder à un
enregistrement, et "lock data row" qui ne lock que la ligne.
Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause
de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il
possible de changer cette méthode d'accès pour passer en "lock data row"
? (qui parait-il résoudrait peut-être mes problèmes)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain Lafontaine
Probablement que vous faites référence aux bases de données JET/MDB et à l'option « Open databases using record-level locking ».
Avec SQL-Server, il y a des toujours « lock data page » comme tel mais la question des DeadLock qui se pose probablement dans votre cas est infiniment plus complexe que juste un choix de type de lock de base et est intimement associée entre autre aux transactions et au type d'isolation choisi.
Je suggère que vous commenciez par lire l'article suivant comme début d'explication: http://www.awprofessional.com/articles/article.asp?p&890&seqNum=1&rl=1
-- Sylvain Lafontaine, ing. MVP - Technologies Virtual-PC E-mail: http://cerbermail.com/?QugbLEWINF
wrote in message news:
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des bases de données en général... :) On m'a parlé de deux mode d'accès aux données lors d'une requête. Le mode "lock data page" qui lock une page entière pour accéder à un enregistrement, et "lock data row" qui ne lock que la ligne. Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il possible de changer cette méthode d'accès pour passer en "lock data row" ? (qui parait-il résoudrait peut-être mes problèmes)
Merci d'avance, Cdt,
Vincent
Probablement que vous faites référence aux bases de données JET/MDB et à
l'option « Open databases using record-level locking ».
Avec SQL-Server, il y a des toujours « lock data page » comme tel mais la
question des DeadLock qui se pose probablement dans votre cas est infiniment
plus complexe que juste un choix de type de lock de base et est intimement
associée entre autre aux transactions et au type d'isolation choisi.
Je suggère que vous commenciez par lire l'article suivant comme début
d'explication:
http://www.awprofessional.com/articles/article.asp?p&890&seqNum=1&rl=1
--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF
<Vincent.FRA@community.nospam> wrote in message
news:e6JorgDoGHA.3440@TK2MSFTNGP04.phx.gbl...
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des
bases de données en général... :)
On m'a parlé de deux mode d'accès aux données lors d'une requête. Le mode
"lock data page" qui lock une page entière pour accéder à un
enregistrement, et "lock data row" qui ne lock que la ligne.
Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause de
locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il
possible de changer cette méthode d'accès pour passer en "lock data row" ?
(qui parait-il résoudrait peut-être mes problèmes)
Probablement que vous faites référence aux bases de données JET/MDB et à l'option « Open databases using record-level locking ».
Avec SQL-Server, il y a des toujours « lock data page » comme tel mais la question des DeadLock qui se pose probablement dans votre cas est infiniment plus complexe que juste un choix de type de lock de base et est intimement associée entre autre aux transactions et au type d'isolation choisi.
Je suggère que vous commenciez par lire l'article suivant comme début d'explication: http://www.awprofessional.com/articles/article.asp?p&890&seqNum=1&rl=1
-- Sylvain Lafontaine, ing. MVP - Technologies Virtual-PC E-mail: http://cerbermail.com/?QugbLEWINF
wrote in message news:
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des bases de données en général... :) On m'a parlé de deux mode d'accès aux données lors d'une requête. Le mode "lock data page" qui lock une page entière pour accéder à un enregistrement, et "lock data row" qui ne lock que la ligne. Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il possible de changer cette méthode d'accès pour passer en "lock data row" ? (qui parait-il résoudrait peut-être mes problèmes)
Merci d'avance, Cdt,
Vincent
Fred BROUARD
Bonjour,
a écrit :
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des bases de données en général... :) On m'a parlé de deux mode d'accès aux données lors d'une requête. Le mode "lock data page" qui lock une page entière pour accéder à un enregistrement, et "lock data row" qui ne lock que la ligne. Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il possible de changer cette méthode d'accès pour passer en "lock data row" ? (qui parait-il résoudrait peut-être mes problèmes)
Oui, regardez la procédure stockée sp_index_option. Elle permet de forcer le mode de verouillage des index (si cluster = tables).
A manier avec précautions. Si les verrous sont nombreux il faudra augmenter le poole de vérouillage (sp_configure)
A +
Merci d'avance, Cdt,
Vincent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Bonjour,
Vincent.FRA@community.nospam a écrit :
Bonjour tout le monde,
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des
bases de données en général... :)
On m'a parlé de deux mode d'accès aux données lors d'une requête. Le
mode "lock data page" qui lock une page entière pour accéder à un
enregistrement, et "lock data row" qui ne lock que la ligne.
Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause
de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il
possible de changer cette méthode d'accès pour passer en "lock data row"
? (qui parait-il résoudrait peut-être mes problèmes)
Oui, regardez la procédure stockée sp_index_option. Elle permet de
forcer le mode de verouillage des index (si cluster = tables).
A manier avec précautions. Si les verrous sont nombreux il faudra
augmenter le poole de vérouillage (sp_configure)
A +
Merci d'avance,
Cdt,
Vincent
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Tout d'abord je suis assez débutant sur SQL Server et dans le monde des bases de données en général... :) On m'a parlé de deux mode d'accès aux données lors d'une requête. Le mode "lock data page" qui lock une page entière pour accéder à un enregistrement, et "lock data row" qui ne lock que la ligne. Pendant des phases d'ETL, j'ai des problèmes d'accès simultanés à cause de locks justement.
Ma question est donc la suivante : sous SQL Server 2000 SP4, est-il possible de changer cette méthode d'accès pour passer en "lock data row" ? (qui parait-il résoudrait peut-être mes problèmes)
Oui, regardez la procédure stockée sp_index_option. Elle permet de forcer le mode de verouillage des index (si cluster = tables).
A manier avec précautions. Si les verrous sont nombreux il faudra augmenter le poole de vérouillage (sp_configure)
A +
Merci d'avance, Cdt,
Vincent
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************