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

Administration SQL Server Discussion :

Changer le type de verrou sur le base de données SQL Server 2008


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Changer le type de verrou sur le base de données SQL Server 2008
    Bonjour,

    Je rencontre un problème actuellement avec SQL Server 2008.

    J'utilise un script java qui modifie simultanément et en parallèle des lignes dans une table que j'appelle toto.

    Le problème est que l'exécution de ce script se bloque pendant les modifications de la table toto à cause d'un accès concurent sur la table.

    Serait il possible de modifier le type de verrou(actuellement sur la table) pour le positionner sur la ligne en cours de modification.

    Merci pour votre aide.

  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 847
    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 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    Vous pouvez de différentes manières :
    1) en utilisant un niveau d’isolation des transactions approprié. A lire : http://sqlpro.developpez.com/isolation-transaction/
    2) en obligeant les tables/index à adopter un mode de verrouillage spécifique à l'aide de la commande ALTER INDEX ... ALLOW_ROW_LOCKS / ALLOW_PAGE_LOCKS : http://technet.microsoft.com/en-us/l.../ms188388.aspx
    3) en plaçant un tag de spécification de verrou au niveau de la requête : http://msdn.microsoft.com/fr-fr/library/ms187373.aspx

    MAIS : ce que vous faite est particulièrement contre performant et aucune des solutions que je vous ais donné ne sera adéquate ! En vertu d'un principe simple : une base de données n'est pas un vulgaire fichier SQL !!!!!
    En effet, au niveau de la mise à jour des données elle ne pourra de toutes façon pas s'effectuer en parallèle. Autrement dit vos différents threads seront mis en série !
    En revanche sachez que SQL Server sait paralléliser tout seul les IO, pourvu que vous ayez ventilé votre base sur différents fichiers, chacun sur un axe physique différent.

    Bref, je crois que vous avez un problème de conception de votre application !

    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. Réponses: 27
    Dernier message: 04/12/2011, 20h20
  2. Changer le type de verrou sur une base de données SQL Server 2008
    Par bigzouzou dans le forum Administration
    Réponses: 1
    Dernier message: 03/08/2011, 11h20
  3. [2008 TeamSuite] Pas de projet de base de donnée SQL Server 2008
    Par CUCARACHA dans le forum Visual Studio Team System
    Réponses: 0
    Dernier message: 17/11/2009, 08h25
  4. Réponses: 11
    Dernier message: 02/03/2009, 08h15
  5. Réponses: 6
    Dernier message: 17/02/2009, 10h16

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