none
SQL Server utilise beaucoup de RAM (débutant SQL Server) RRS feed

  • Question

  • Bonjour,

    Mon SQL Server 2008 se réserve près de 12Go de RAM, ce que je trouve un peu beaucoup...

    J'avais un jour trouvé par hasard un outil (ou une requête) me permettant de voir les requêtes en cours, leurs états et je crois même la quantité de RAM utilisée par chacune d'entre elles.

    Je ne me rappelle plus du tout de ce que c'est, et je ne trouve rien par le Management Studio.

    Si quelqu'un pouvait me venir en aide ...

    Merci !

    lundi 7 décembre 2015 09:51

Réponses

  • En faite ce qui prend beaucoup de place en RAM dans SQL Server sont les pages de données. La raison est simple, il est plus rapide de lire et d'écrire en RAM que sur le disque.

    Donc la RAM s'alloue jusqu'à atteindre le seuil maximum configuré sur l'instance. Les pages qui sont en mémoire qui ont été utilisé pour une répondre à une requête reste afin d'être réutilisé pour une prochaine fois.

    • Marqué comme réponse Will799114 lundi 7 décembre 2015 13:00
    lundi 7 décembre 2015 11:16
  • un redémarrage de l'instance videra ce cache et vous pourrez constater une chute de la mémoire utilisé sur la machine.
    • Modifié Grégory_Nail lundi 7 décembre 2015 12:41
    • Marqué comme réponse Will799114 lundi 7 décembre 2015 13:00
    lundi 7 décembre 2015 12:41
  • Bonjour,

    Par défaut un SQL Server utilise toute la mémoire dont il a besoin, mais on peut lui imposer des limites.

    Depuis Management Studio,

    • connectez-vous à votre serveur
    • afficher les propriétés du serveur (clic-droit sur le serveur, option "Propriétés")
    • sélectionner la page "Mémoire"
    • vous trouverez les valeurs "Mémoire minimale du serveur" et "Mémoire maximale du serveur" qui vous permettent de contrôler la mémoire consommée.

    Attention à ne pas limiter de trop la mémoire, sous peine d'avoir une baisse des performances du serveur.

    Vous avez un outil "Moniteur d'activité" (clic-droit sur le serveur, option "Moniteur d'activité") qui permet de surveiller l'activité générale du serveur.

    Pour les requêtes je pense que vous parlez du profileur, vous le trouverez dans le menu "Outils" du Management Studio.

    Cordialement,


    Yan Grenier

    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont répondues à votre question, et de noter les réponses que vous avez trouvé utiles.

    • Marqué comme réponse Will799114 lundi 7 décembre 2015 12:59
    lundi 7 décembre 2015 10:29

Toutes les réponses

  • Bonjour,

    Par défaut SQL Server essaye de consommer toute la RAM disponible. Donc tu peux dans ce cas plafonner ta RAM avec SQL Management Studio : https://technet.microsoft.com/en-us/library/ms191144(v=sql.105).aspx

    Ensuite, Tu peux voir via SQL Profiler les requetes qui transite et qui peuvent realiser cette forte consomation : https://technet.microsoft.com/en-us/library/aa173918(v=sql.80).aspx

    Cordialement,

    Yannick VIlSANS

    lundi 7 décembre 2015 10:17
  • Bonjour,

    Par défaut un SQL Server utilise toute la mémoire dont il a besoin, mais on peut lui imposer des limites.

    Depuis Management Studio,

    • connectez-vous à votre serveur
    • afficher les propriétés du serveur (clic-droit sur le serveur, option "Propriétés")
    • sélectionner la page "Mémoire"
    • vous trouverez les valeurs "Mémoire minimale du serveur" et "Mémoire maximale du serveur" qui vous permettent de contrôler la mémoire consommée.

    Attention à ne pas limiter de trop la mémoire, sous peine d'avoir une baisse des performances du serveur.

    Vous avez un outil "Moniteur d'activité" (clic-droit sur le serveur, option "Moniteur d'activité") qui permet de surveiller l'activité générale du serveur.

    Pour les requêtes je pense que vous parlez du profileur, vous le trouverez dans le menu "Outils" du Management Studio.

    Cordialement,


    Yan Grenier

    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont répondues à votre question, et de noter les réponses que vous avez trouvé utiles.

    • Marqué comme réponse Will799114 lundi 7 décembre 2015 12:59
    lundi 7 décembre 2015 10:29
  • Merci pour vos réponses.

    Faut-il donc considérer que SQL Server se réserve de la RAM, en prévoyant large ?

    Ou y a-t-il des requêtes SQL "dormantes" qui continuent d'occuper de la RAM pour rien ?

    Ou encore, est-ce qu'à chaque exécution de nouvelles requêtes, il se rajoute de la RAM jusqu'au max ?
    • Modifié Will799114 lundi 7 décembre 2015 11:12
    lundi 7 décembre 2015 11:05
  • En faite ce qui prend beaucoup de place en RAM dans SQL Server sont les pages de données. La raison est simple, il est plus rapide de lire et d'écrire en RAM que sur le disque.

    Donc la RAM s'alloue jusqu'à atteindre le seuil maximum configuré sur l'instance. Les pages qui sont en mémoire qui ont été utilisé pour une répondre à une requête reste afin d'être réutilisé pour une prochaine fois.

    • Marqué comme réponse Will799114 lundi 7 décembre 2015 13:00
    lundi 7 décembre 2015 11:16
  • Ok, merci

    Alors, est-ce qu'un redémarrage du service permet de "vider" cette RAM réservée ? Ou est-ce qu'un redémarrage complet du système est nécessaire ?

    lundi 7 décembre 2015 11:43
  • un redémarrage de l'instance videra ce cache et vous pourrez constater une chute de la mémoire utilisé sur la machine.
    • Modifié Grégory_Nail lundi 7 décembre 2015 12:41
    • Marqué comme réponse Will799114 lundi 7 décembre 2015 13:00
    lundi 7 décembre 2015 12:41