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 :

Question Niveau Isolation


Sujet :

Administration SQL Server

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Points : 604
    Points
    604
    Par défaut Question Niveau Isolation
    Bonjour,

    Je cherchais une requête pour récupérer les messages d'erreur liés aux niveau ISOLATION niveau SQL ?

    Est ce que ces éventuelles erreurs sont tracées dans log ? comment les tracer avec Profiler ?

    MERCI.

    Bonne journée à tous.

    A+
    SDR.
    "ceux qui vivent, ce sont ceux qui luttent."

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Bonsoir,

    Je ne comprends pas la question. L'isolation ne provoque pas d'erreur, ce sont les concurrences d'accès qui, en fonction de l'isolation, du type de verrou et de la taille de ces verrous peuvent provoquer des erreurs.
    Quel est le besoin fonctionnel ?

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Effectivement, aucune erreur n'est engendrée par le fait d'un de modifier le niveau d'isolation même s'il est inadapté. Petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE DATABASE TEST;
    GO
    USE TEST;
    GO
    CREATE TABLE T (C INT);
    INSERT INTO T VALUES (1);
    SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
    BEGIN TRANSACTION
       UPDATE T SET C = C+ 1;
    COMMIT;
    GO
    Ceci provoque une erreur :

    Msg*3952, Niveau*16, État*1, Ligne*9
    La transaction d'isolement d'instantané n'a pas pu accéder à la base de données 'TEST' car l'isolement d'instantané n'est pas autorisé dans cette base de données. Utilisez ALTER DATABASE pour autoriser l'isolement d'instantané.


    Mais l'erreur se produit à la ligne 9, c'est à dire à l'UPDATE et non au moment du SET TRANSACTION…

    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/ * * * * *

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Points : 604
    Points
    604
    Par défaut
    Bonsoir,

    J'ai ce message remontée dernièrement sur une instance 2012:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A read operation on a large object failed while sending data to the client. 
    A common cause for this is if the application is running in READ UNCOMMITTED isolation level.
    Je voudrai regardé au niveau de l'instance si ce message revient ou pas ...? comment tracer ?

    MERCI.

    A+
    SDR.
    "ceux qui vivent, ce sont ceux qui luttent."

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Il est probable que le développement de votre application ait été fait en utilisant massivement le "hint" NOLOCK dans les requêtes ce qui est une stupidité !
    Commencez par virer ce hint de vos requêtes. Eventuellement, passez en mode de verrouillage optimiste pour la base en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE [MaBase] SET READ_COMMITTED_SNAPSHOT ON;
    Attention, ceci peut avoir quelques conséquences fonctionnelles. Assurez vous au moins que les transactions soient protégées…..

    D'autre part, vous pouvez trapper cette erreur (7886 de niveau 20) par une alerte de l'Agent SQL.

    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/ * * * * *

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Points : 604
    Points
    604
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mais l'erreur se produit à la ligne 9, c'est à dire à l'UPDATE et non au moment du SET TRANSACTION…
    L'erreur est à chercher alors sur le server applicatif ....?


    Merci.

    A+
    SDR.
    "ceux qui vivent, ce sont ceux qui luttent."

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Points : 604
    Points
    604
    Par défaut
    Bonjour,

    Est-ce que le message d'erreur sur "READ UNCOMMITTED isolation level ..."

    est remonté dans le journal des événements de Windows ?

    Par avance Merci.

    Ä+
    SDR.
    "ceux qui vivent, ce sont ceux qui luttent."

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    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. [2012] Question Niveau Isolation
    Par dari68 dans le forum Administration
    Réponses: 9
    Dernier message: 28/06/2019, 16h13
  2. Réponses: 3
    Dernier message: 13/12/2015, 20h53
  3. une autre question niveau communication
    Par gctom dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 15/01/2006, 23h25
  4. question niveau newbi -1
    Par cubepiege dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/11/2005, 18h11
  5. Niveau isolement des transactions
    Par lio33 dans le forum Débuter
    Réponses: 4
    Dernier message: 23/11/2005, 15h00

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