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 :

Problème de performance dans une procédure stockée de type CLR


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème de performance dans une procédure stockée de type CLR
    Bonjour

    Nous avons développé une procédure stockée de type CLR que nous avons testée sur un PC XP de petite taille (Dualcore 2 Gb RAM) et que nous avons déployée sur un serveur Windows 2008 R2 avec SQL 2008 R2 or cette procédure stockée tourne 2 fois moins vite sur ce serveur que sur le PC

    Cette procédure génère des étiquettes à partir de bases locales et les stocke dans une autre base locale, ce n'est donc pas non plus un problème de réseau

    Comme le PC utilisait une édition SQL développement, nous avons essayé en changeant la version du serveur pour passer sur une édition Entreprise

    Nous avons changé le mode des bases de données de récupération FULL à SIMPLE
    Les logiciels sur le serveur ont été mis à jour à la dernière version disponible par Windows Update
    Pour info, le PC utilise un backup des bases du serveur sur lequel sont exécuté des scripts de plans de maintenance hebdomadaires alors que rien n'est programmé sur le PC

    La charge CPU du serveur reste assez faible et la mémoire consommée par SQL Server, après reboot, ne monte pas

    Quelqu'un a-t-il été confronté à une problème semblable et avez-vous trouvé une solution pour améliorer ces performances ?

    D'avance merci pour vos réponses

    Michel

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Comme vous passez de XP (qui n'est d'ailleurs plus supporté par Microsoft depuis le 8 Avril 2014) à Windows Server 2008, je pense immédiatement à :

    • La version du Framework
    • Le type de CPU avec lequel vous avez compilé : 32 ou 64 bits

    L'édition Developer est identique à l'Enterprise, si ce n'est que le nombre de processeurs que l'on peut utiliser avec la première est limité.
    Le mode de récupération n'a rien à voir dans la vitesse d'exécution du code, de quelque nature qu'il soit.

    @++

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    La compilation en mode 64bits avait été la première modification à être appliquée mais entre temps, nous avons même remplacé le PC du développeur par un Windows 7 nativement 64bits et les performances restent les mêmes sur le PC
    La version du Framework avait bien sûr été adaptée entre les 2 environnements

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    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 848
    Points : 52 966
    Points
    52 966
    Billets dans le blog
    6
    Par défaut
    Détaillez ce que fait cette procédure et montrez nous le code.

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

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai ajouté en pièce jointe le code de la procédure stockée qui génère les étiquettes ainsi que la description des tables (avec index) et fonction utilisées dans la jointure

    La variable @champs est remplacée par une énumération des informations à imprimer sur l'étiquette (de l'ordre de 70 dans notre cas)
    Les variables @cab et @pdc sont les critères de sélection dans la vue
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    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 848
    Points : 52 966
    Points
    52 966
    Billets dans le blog
    6
    Par défaut
    Vous faites pas de la base de données, là !!! Vous faites du tableur Excel !

    [dbo].[TAB_DATA_MAT] => 36 colonnes
    avec 4 beaux viols de 1FN :
    [DesignationFRA] / [DesignationALL]
    [DimensionX] / [DimensionY] / [DimensionZ]
    [ColorisExt] / [ColorisInt]
    [SensFilExt] / [SensFilInt]

    [dbo].[TAB_MES_COLIS] => 36 colonne, clé primaire composée de 6 colonnes (int, int char(3), tinyint, int, cgar(10) !
    avec aussi de beaux viols de 1 FN
    DimensionColis... DesignationComp1Etiq...

    [dbo].[TAB_MES_CPS] => 108 colonnes
    Un nombre impressionnant de viols de 1 FN
    colonnes se terminant par 1, 2, 3, 4 ou 5 :[ColorisChant1], [EpaisseurChant1], [FormeCpsChant1], [RecouvrementChant1], [TypePercage1]
    colonenes IntervaleTolerance... (10 !)

    [dbo].[TAB_MES_PDC] => 84 colonnes

    Ne vous étonnez pas d'avoir aucune performances....
    A lire : http://blog.developpez.com/sqlpro/p1...mances_petites

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

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse

    Je vais voir avec les développeurs et leur demander s'il est possible de revoir l'architecture des tables

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je reviens malgré tout sur cette réponse en rappelant le problème initial qui est que la même exécution sur un simple PC est plus rapide alors que le serveur sur lequel nous testons est un serveur de pré-production non sollicité

  9. #9
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Je ne vois pas le code de l'assembly CLR ...

    @++

  10. #10
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Je ne vois pas le code de l'assembly CLR ...

    @++
    Moi non plus.

    Ya du boulot la!!

    Et coluche qui disait "il le vende ca?", c'est la première chose qui me vient à l'esprit!
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2007, 11h02
  2. Réponses: 1
    Dernier message: 06/03/2007, 11h57
  3. Réponses: 1
    Dernier message: 20/07/2006, 17h03
  4. Réponses: 4
    Dernier message: 16/12/2005, 16h25
  5. Problème Alter view dans une procédure stockée
    Par adjava dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/07/2005, 17h45

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