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

MS SQL Server Discussion :

[SQL2K] commande sp_cursorprepexec


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Par défaut [SQL2K] commande sp_cursorprepexec
    Bonjour,

    Depuis un petit moment les utilisateurs de ma société se plaignent de gros ralentissement sous notre application CRM (Adonix), en regardant les performances du serveur je me suis aperçu que la longueur moyenne de file d'attente de lecture du disque est souvent très élevée et dans le générateur de profil SQL de nombreuses requêtes apparaissent comme assez gourmandes en lecture, par exemple lle type de requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    declare @P1 int
    set @P1=1023
    declare @P2 int
    set @P2=180150511
    declare @P3 int
    set @P3=8
    declare @P4 int
    set @P4=1
    declare @P5 int
    set @P5=1
    exec sp_cursorprepexec @P1 output, @P2 output, N'@P1 int', N'Select SDH_.IDENTITYCOL, SDH_.BPCINV_0, SDH_.SALFCY_0, SDH_.CFMFLG_0, SDH_.INVFLG_0, SDH_.DLVDAT_0, SDH_.LND_0, SDH_.SHIDAT_0, SDH_.BPAADD_0, SDH_.BPCORD_0, SDH_.SDHNUM_0, BPC_.BPCNAM_0
    From SDELIVERY SDH_  LEFT OUTER JOIN BPARTNER BPR_  ON ((BPR_.BPRNUM_0 = SDH_.BPCORD_0)) LEFT OUTER JOIN BPCUSTOMER BPC_  ON ((BPC_.BPCNUM_0 = SDH_.BPCORD_0))
    Where SDH_.LND_0 = @P1
    Order by SDH_.SDHNUM_0 Desc', @P3 output, @P4 output, @P5 output, 1
    select @P1, @P2, @P3, @P4, @P5
    Cette requête prend environ une vingtaines de secondes et 1 million en lecture, pourtant ces trois tables ne dépassent pas 300 000 enregistrements, et l'exécution de cette requête dans l'analyseur ne prend pas autant de temps.
    J'ai essayé de rechercher des informations sur la commande sp_cursorprepexec et comment faire pour optimiser l'exécution mais j'avoue que je suis totalement dépassé, si quelqu'un a déjà été présenté à ce genre de cas et a une solution je suis preneur

    Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    essaies d'executer la requête a part:

    Select SDH_.IDENTITYCOL, SDH_.BPCINV_0, SDH_.SALFCY_0, SDH_.CFMFLG_0, SDH_.INVFLG_0, SDH_.DLVDAT_0, SDH_.LND_0,
    SDH_.SHIDAT_0, SDH_.BPAADD_0, SDH_.BPCORD_0, SDH_.SDHNUM_0, BPC_.BPCNAM_0
    From SDELIVERY SDH_
    LEFT OUTER JOIN BPARTNER BPR_ ON ((BPR_.BPRNUM_0 = SDH_.BPCORD_0))
    LEFT OUTER JOIN BPCUSTOMER BPC_ ON ((BPC_.BPCNUM_0 = SDH_.BPCORD_0))
    Where SDH_.LND_0 = 1023
    Order by SDH_.SDHNUM_0 Desc

    et regarde le nombre de lignes retournées

    A+
    serge

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Par défaut
    En filtrant sur un LND_0 a 1023, la requête me retourne aucun enregistrement par contre en filtrant sur 1, ça me retourne environ 300 000 enregistrements en une vigntaine de secondes, par contre cela ne représente plus que 43000 en lecture au lieu des 1 million d'après le générateur de profils.

Discussions similaires

  1. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  2. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  3. [Kylix] Commandes linux ss kylix
    Par csnickos dans le forum EDI
    Réponses: 3
    Dernier message: 15/09/2002, 20h24
  4. Réponses: 3
    Dernier message: 02/09/2002, 18h49
  5. Réponses: 2
    Dernier message: 11/08/2002, 21h27

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