|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2008 Messages : 202 ![]() |
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 |
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
Citation:
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 |
|
|
00
|
|
|
#3 | ||
![]() ![]() Administrateur de base de données Inscription : août 2007 Messages : 1 158 ![]() |
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 :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
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 ?
|
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
@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 |
|
00
|
|
|
#6 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
|
|
|
00
|
|
|
#7 |
![]() ![]() Administrateur de base de données Inscription : août 2007 Messages : 1 158 ![]() |
|
|
|
00
|
|
|
#8 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
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. :-) ++ |
|
00
|
|
|
#9 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
bonjour
Qu'est ce qui se met à ramer ? Citation:
Ne pouvez-vous pas dédier un serveur pour SQL, et mettre vos autres applications sur un autre serveur ? |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com