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 :

sqlserver tres lent -> 64 bits plus de memoire ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut sqlserver tres lent -> 64 bits plus de memoire ?
    Bonjour,

    J'ai une appli en prod, 250 utilisateurs concurrents.
    le server a 8 processeurs, 4 GB RAM et un sqlserver 2005 standard edition (qui utilise donc 4 processors )

    quand personne n'utilise le server, un report met 4 secondes,
    quand le monde est dessus, le meme report met 1min 30 secondes.

    Comment prouver que le server est à la ramasse?

    et que faut-il préconiser?
    1. passage au 64bits et 16GB de RAM
    2. une version entreprise?
    3. ?

    les reports utilisent beaucoup de tables temporaires et manipule des larges tables de données. (c'est des reports sur une database pour un systeme de tickets)

    Merci d'avance pour votre aide.

  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 : 44
    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
    Par défaut
    Bonjour,

    Un bon indicateur est le compteur de performance Page Life Expectancy, que vous pouvez visualiser à l'aide du moniteur de performance de Windows, ou bien à l'aide de la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT	cntr_value AS PLE
    FROM	sys.dm_os_performance_counters
    WHERE	object_name = 'SQLServer:Buffer Manager'
    AND	counter_name = 'Page life expectancy'
    Il indique le temps moyen, en secondes, que les pages de données restent dans le cache de données. Plus c'est long, plus c'est bon
    Si sa valeur est en dessous de 300, c'est que vous avez de la pression mémoire, et à mon avis ce doit être le cas, spécifiquement quand vous exécutez le rapport.

    Vous pouvez donc penser à étudier les requêtes (SET STATISTICS IO, plan de requête, ...) de votre rapport et les modifier / ajouter des indexes / ...

    Comme vous dites que vous utilisez des tables temporaires, il se peut également que vous deviez simplement réécrire vos requêtes.
    Dès la version 2005 de SQL Server, vous pouvez vous en remettre aux expressions de table commune (CTE dans la littérature) pour éviter leur usage.

    Vous dites également utiliser des tables volumineuses : c'est-à-dire ?
    Quel est leur taille, leur nombre de ligne, leur définition ?
    Quels sont les index sur cette table ? Sont-ils correctement utilisés par les requêtes de votre rapport ?

    Si après avoir répondu à toutes ces questions et correctement adressé les performances de vos requêtes la base de données est toujours "lente", vous pourrez considérer augmenter la quantité de RAM.
    En effet, SQL Server travaille exclusivement en RAM, puisque les temps d'accès sont au moins 1000 fois plus rapide que sur disque

    Le fait de passer en 64 bits ne vous apportera rien sauf si vous comptez mettre plus de 64Go de RAM sur la machine hébergeant l'instance SQL Server.
    En effet vous pouvez utiliser les options d'AWE (flag /PAE dans le fichier boot.ini, voyez l'article de Mikedavem à ce sujet) pour adresser au plus 64Go de RAM.

    L'édition Enterprise ne comporte aucune différence avec l'édition Standard à ce niveau là.
    Elle est simplement plus riche en fonctionnalités que l'édition Standard.

    @++

  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 999
    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 999
    Billets dans le blog
    6
    Par défaut
    Quelle est la taille de la base ?

    Faite sp_spaceused sur la base.

    Comment avez vous mesuré les 250 utilisateurs concurrents ?


    Pour voir le nombre d'utilisateurs connectés, faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT session_id, connect_time, text, COUNT(*) OVER() AS NOMBRE
    FROM   sys.dm_exec_connections
           CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle)
    Nombre vous donnera le nombre total de connexions utilisateur.

    Pour voir le nombre de requêtes simultanées en cours d'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
    FROM   sys.dm_exec_requests  AS r
           INNER JOIN sys.dm_exec_connections AS c
                 ON r.session_id = c.session_id
    WHERE  status = 'running'
    Est une appli Web ou client lourd ?

    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é
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Il indique le temps moyen, en secondes, que les pages de données restent dans le cache de données. Plus c'est long, plus c'est bon
    Si sa valeur est en dessous de 300, c'est que vous avez de la pression mémoire, et à mon avis ce doit être le cas, spécifiquement quand vous exécutez le rapport.

    Existe-t'il une bonne litérature à ce sujet. En effet, je quitte malgré moi le domaine de la programmation SQL pour faire de l'administration SQL Server pure, domaine qsue je maîtrise mal.

  5. #5
    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 : 44
    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
    Par défaut
    Malheureusement pas grand chose sur le sujet.
    On trouve au mieux un paragraphe consacré à ce compteur, et un autre au Buffer Cache Hit Ratio (qui doit être le plus proche de 100% possible), dans les livres qui traitent de la performance, comme Pro SQL Server 2008 Query Performance Tuning Distilled, écrit par Grant Fritchey et Sajal Dam, ...

    @++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Par défaut
    çà promet

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Merci beaucoup pour votre aide,

    j'ai executé la commande pour "page life expectancy",
    J'ai eu 172, puis j'ai lancé un report, et la j'ai eu 12.

    c'est une catastrophe, j'ai remonté l'info, je vous tiendrais au courant.

Discussions similaires

  1. [wifi]transfert de données tres lent
    Par Grimaud dans le forum Hardware
    Réponses: 5
    Dernier message: 30/01/2006, 12h34
  2. [FB 1.5.2] Requetes tres lentes via VPN
    Par gudul dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 05/01/2006, 18h52
  3. NFS : Mount très lent
    Par litbos dans le forum Réseau
    Réponses: 2
    Dernier message: 28/12/2005, 14h23
  4. Impression très très lente avec Samba
    Par Daav dans le forum Réseau
    Réponses: 4
    Dernier message: 29/12/2004, 18h45
  5. Réponses: 6
    Dernier message: 29/09/2004, 12h45

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