Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2011, 22h38   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2008
Messages : 202
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 202
Points : 13
Points : 13
Par défaut Consommation mémoire SQL Server

Bonjour,

A force d'insérer des données en masse, SQL Server bouffe quasi toute la RAM disponible (90%). J'ai pris un serveur disposant du double de RAM. Avec les mêmes données, il bouffe toujours 90%. Si je lui donne 20 Go de RAM, je suis sur qu'il va bouffer 90% de 20 GO !

Du coup ça se met à ramer. Après un rédémarrage du service SQL Server, tout redevient ok.

J'ai l'impression que c'est une sorte de cache qui pose problème et je sais pas comment on règle tout ça...
Si quelqu'un a une idée, je suis preneur.

Pour info, je n'utilise pas de procédures stockées, juste des requêtes d'insertion et de select (grosses requêtes quand même).
Les connexions ouvertes sont bien refermées proprement donc je ne vois pas de fuite de mémoire de mon coté

Merci d'avance
boby62423 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 04h53   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Bonjour,

Citation:
J'ai l'impression que c'est une sorte de cache qui pose problème et je sais pas comment on règle tout ça...
C'est effectivement le cas.
En fait SQL Server essaie autant que c'est possible de travailler en RAM, puisque son accès est au moins 1000 fois plus rapide qu'un accès disque.
En conséquence il prend la mémoire pour stocker les données de votre base de données.
Donc si votre base de données à une taille qui dépasse celle de la RAM disponible sur votre machine, les problèmes de performances s'aggraveront au fur et à mesure que votre base de données va vivre.

Il vous faut donc considérer l'optimisation de vos procédures et l'indexation de vos tables.
SQL Pro a publié un très bon article là-dessus ici.

Enfin, SQL Server ne rend jamais la RAM qu'il a prise sauf si l'OS le lui "demande".
Arrêter le service SQL Server purge le cache, donc lorsque vous redémarrez le service et exécutez une requête, toutes les données vont être lues à partir des fichiers de données pour être traités en RAM.
Donc vos requêtes sont lentes

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h04   #3
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 158
Points : 1 617
Points : 1 617
Si vous souhaitez limiter l'utilisation de RAM de votre serveur SQL, vous pouvez commencer par lui definir le maximum de RAM qu'il peut utiliser - exemple pour limiter la ram a 3GB:
Code :
1
2
3
 
sp_configure 'max server memory (MB)', 3072
RECONFIGURE
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h45   #4
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Petite question, si on ne limite pas à 3072 mais plutôt 3000 est-ce que le fait que cela ne représente pas 3Go, un chiffre rond pour lui, peut déranger quelque part ?
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 12h08   #5
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
@Ptit_Dje : OK mais parfois SQL Server outrepasse cette limite ...

@Jinroh77 : Non

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 12h20   #6
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Citation:
Envoyé par elsuket Voir le message
@Jinroh77 : Non
Merci pour la précision
Jinroh77 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h08   #7
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 158
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 158
Points : 1 617
Points : 1 617
Citation:
Envoyé par elsuket Voir le message
@Ptit_Dje : OK mais parfois SQL Server outrepasse
Ah oui ?
Dans quels cas ?
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 17h22   #8
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Effectivement certains composants internes et externes peuvent allouer de la mémoire en dehors du seuil paramètre avec l'option Max server memory.

Ce paramètre ne limite que la partie buffer des données qui représentent quand même la majorité de la mémoire consommée. :-)

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 17h28   #9
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
bonjour
Citation:
Envoyé par boby62423 Voir le message
Du coup ça se met à ramer.
Qu'est ce qui se met à ramer ?

Citation:
Après un rédémarrage du service SQL Server, tout redevient ok.
Si par "tout redevient ok", vous voulez dire que ça ne rame plus, ceci me fait penser que vous parlez d'autres applications sur le même serveur qui rament !
Ne pouvez-vous pas dédier un serveur pour SQL, et mettre vos autres applications sur un autre serveur ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h41.


 
 
 
 
Partenaires

Hébergement Web