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 :

Processus Sql Server prend toute la mémoire vive


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Processus Sql Server prend toute la mémoire vive
    J'ai un petit problème, lorsque la base sql server est lancée, au bout d'un certain temps, disons une semaine, le processus de sql server prend toute la mémoire vive ce qui fait ramer les autres programmes lancés sur le serveur, mais aussi les applications qui ont accès a cette base, comment résoudre ce problème.
    Pour l'instant je suis obligé d'arreter le processus et de le relancer pour que ça revienne à la normale.
    Merci pour votre aide :o

  2. #2
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Tout a fait normal, c'est la configuration par defaut de SQL Server, en general (et c'est fortement conseille, un serveur SQL doit etre la seule application qui tourne sur le serveur), pour changer la configuration tu fais un click droit dans entreprise manager sur ton serveur puis tu vas dans proprietes , la tu as un onglet memoire pour regler la memoire que utilises ton serveur. Par contre il faut savoir ce que tu fais, demande a ton dba (si dba il y a ) ou jette un coup d'oeil sur la doc pour voir les recommandations de memoire.

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    oui mais en début de semaine la mémoir vive alloué a ca processus n'est pas énorme. Le pb est qu'au fil du temps la cette mémoire allouée augmente jusqu'a prendre toutes les ressources. Pourquoi augmente-t'elle comme cela est ce normale?

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Oui c'est normal, SQL Server utilise la memoire au fur et a mesure qu'il en as besoin. Il va monter en memoire les tables utilisees pour les avoir dans son cache pour des acces plus rapides, il stocke en memoire les plans d'execution des requetes ... etc etc, donc tout a fait normal que l'utilisation memoire augmente au fil des connexions et requetes, tout en restant dans les limites que tu lui defini.

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    donc je n'ai qu'a faire un click droit dans entreprise manager sur le serveur puis dans proprietes , puis ds onglet memoire pour regler la memoire que utilise le serveur et regler l'espace memoire max.
    Merci de ton aide

  6. #6
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Oui en theorie, mais si tu n'alloue pas assez de memoire a SQL Server tu vas avoir de gros pbs de performances !!
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  7. #7
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Plus tu baisses la memoire et plus le cache de donnees baisse (et plus il y a d'acces disque, et plus les perf baissent). Si tu baisse en dessous du minimum vital, MS-SQL ne demarrera plus...
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Même pb
    Bonjour,

    J'ai le même problème que cracosore, avec MSDE.

    N'y a-t-il pas un pb de requete ?

    Mon appli fonctionne en ASP. J'empile les requêtes d'insertion.

    Est-ce qu'il ne faudrait pas placer une commande, ne serait-ce qu'un "go" ou un "commit tran..." ou je ne sais quoi, entre chaque commande SQL, pour vider le tampon mémoire ?

    Merci,

    James
    <moi>James</moi>

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Oui, ce serait mieux car le GO considère que la transaction implicite est terminée !!!

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

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Précision
    Tu me suggère donc d'envoyer un "go" ?

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set Connection = Server.CreateObject("ADODB.Connection")
    connection.Open toto 'DSN Système
    Boucle '(environ 60000 requêtes, des insert, des update, quelques delete...)
       SQL="Insert into matable (valeur1, valeur2...) values (1,2,...)"
       Set RS = connection.Execute(SQL)
    Fin boucle
    Si je rajoute un go (sql=sql & vbcrlf & "go") , ça plante.

    J'ai essayé avec un "commit tran" (sql=sql & vbcrlf & "commit tran") , mais ça ne vide rien du tout, le vidage de ma mémoire se poursuit à raison de 100 ko/s. Mon traitement dure environ 10 minutes.

    Et en fin de traitement, je suis alors à 200 Mo pris par le process SQLServer, pas moyen de revenir à une valeur plus modeste. J'ai essayé les commandes DBCC FREEPROCCACHE et DBCC DROPCLEANBUFFERS, sans trop savoir ce que cela faisait, et maintenant je sais ! Ca fait rien.

    J'ai parcourus quelques messages sur les news microsoft, mais je n'y ai rien trouvé de pertinent.

    Merci,

    James
    <moi>James</moi>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2005] SQL Server se limite en mémoire
    Par Jinroh77 dans le forum Administration
    Réponses: 18
    Dernier message: 12/11/2010, 11h21
  2. boost tokenize me mange toute ma mémoire vive :(
    Par bioinfornatics dans le forum Boost
    Réponses: 5
    Dernier message: 19/03/2010, 18h14
  3. [SQL Server]La liste de toutes les tables
    Par Husqvarna dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/09/2008, 16h21
  4. Sql Server 2005 Pb de mémoire
    Par krest dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/02/2008, 20h31
  5. demande d'information sur les processus sql server
    Par patrick B dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/11/2005, 14h04

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