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

Outils SQL Server Discussion :

SQL Server 2014 et la gestion de la RAM


Sujet :

Outils SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut SQL Server 2014 et la gestion de la RAM
    Bonjour,

    Suite à la migration d'un SQL Server 2005 sur un Windows server 2003 avec 8Go Ram vers un SQL Server 2014 sur Windows Server 2012 R2 avec 8Go Ram on s'interroge sur les performances mémoire.
    Je m'explique. Nous avons un serveur lié qui pointe sur une base Oracle. Le driver Oracle a été installé sur le serveur et pour certaines requêtes complexes nous avions ce message d'erreur :

    Msg 7399, Level 16, State 1, Line 1
    Le fournisseur OLE DB "OraOLEDB.Oracle" du serveur lié "ORACLEPROD" a rapporté une erreur. Le fournisseur n'a plus de mémoire.
    Msg 7311, Level 16, State 2, Line 1
    Impossible d'obtenir l'ensemble de lignes du schéma "DBSCHEMA_TABLES" pour le fournisseur OLE DB "OraOLEDB.Oracle" du serveur lié "ORACLEPROD". Le fournisseur prend en charge l'interface, mais retourne un code d'erreur lorsqu'elle est utilisée.
    Après quelques recherches, en démarrant SQL Server 2014 avec l'option -g1024 cela semble régler le soucis.
    Voici la ligne de commande du lancement du service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         D:\SQL2014\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe -sMSSQLSERVER -g1024
    Nous avons cependant des interrogations sur la RAM utilisée par SQL Server.
    La RAM utilisée sur le serveur ne dépasse pas 4,2 Go (je parle au niveau du moniteur système de Windows)
    Et, lors d'un import en masse de bases de données (plus de 4000) nous avons eu ce message :

    Msg*3013, Niveau*16, État*1, Ligne*1
    RESTORE DATABASE s'est terminé anormalement.
    Msg*3013, Niveau*16, État*1, Ligne*3
    RESTORE DATABASE s'est terminé anormalement.
    Msg*701, Niveau*17, État*17, Ligne*1
    Mémoire système insuffisante dans le pool de ressources 'internal' pour exécuter cette requête.
    Msg*701, Niveau*17, État*17, Ligne*3
    Mémoire système insuffisante dans le pool de ressources 'internal' pour exécuter cette requête.
    Je précise également que nous avons limité l'utilisation de la RAM au niveau SQL Server à 6.5 Go.

    Comment stresser SQL Server pour le forcer à charger la RAM pour être sur qu'il peut monter en charge ?
    L'option -g est-elle la bonne pour résoudre nous problème de serveur lié ?

    Merci pour votre retour.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    que te donne comme résultat ces deux requétes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT CAST( 
            ( 
              SELECT CAST (cntr_value AS BIGINT) 
              FROM sys.dm_os_performance_counters  
              WHERE counter_name = 'Buffer cache hit ratio' 
            )* 100.00 
            / 
            ( 
              SELECT CAST (cntr_value AS BIGINT) 
              FROM sys.dm_os_performance_counters  
              WHERE counter_name = 'Buffer cache hit ratio base' 
            ) AS NUMERIC(6,3) 
          )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT        @@SERVERNAME AS [Server Name], object_name, instance_name, cntr_value AS [Page Life Expectancy]
    FROM            sys.dm_os_performance_counters WITH (NOLOCK)
    WHERE        (object_name LIKE N'%Buffer Node%') AND (counter_name = N'Page life expectancy') OPTION (RECOMPILE)

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Résultat de la requête 1 : 89.354

    Résultat de la requête 2 :
    Server Name : SRV0113
    Object_name : SQLServer:Buffer Node
    Instance_name : 000
    Page Life Expectancy : 99085

  4. #4
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    l'ideal c'est que SQL Server aurai la possibilité de lire toutes les pages du cache de mémoire tampon et il n'y aura pas besoin de lire a partir du disque. Dans ce cas, le Buffer Cache Hit Ratio la valeur serait 100%. La valeur recommandée pour cache de tampon Ratio est sur ​​90%, la valeur minimale acceptable est de 95%. Une valeur inférieure indique un problème de mémoire
    selon les valeurs mesuré Donc je te recommande une augmentation du RAM

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ok je vais doubler la RAM.
    Mais comment simuler une augmentation de la RAM.
    En fait je veux stresser le serveur SQL en passant des requêtes par exemple pour le voir monter en RAM et être sur qu'il va dépasser les 4Go.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    David BARBARIN (Mikedavem) vous propose un bon Article sur le sujet

    http://blog.developpez.com/mikedavem...l_compteur_a_s

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Je vais faire ces actions. Merci.

    Ce que j'aimerai surtout savoir, est ce que l'option -g1024 au démarrage du service SQL Server limite la RAM utilisée par le serveur de base de données ?

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    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 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Ce paramétrage ne va pas vous apporter que du bien.

    Pour comprendre pourquoi SQL Server est à cours de mémoire, vous devez analyser la volumétrie des données de la table Oracle.
    Une requête distribuée nécessite que la jointure entre les tables distantes soit effectuée sur l'un ou l'autre des serveurs.
    Par défaut c'est une "remote query" ce qui veut dire que toutes les lignes de la table distante sont injectée dazns l’espace mémoire de SQL Server. Au terme de ce rapatriement de données, il pourra enfin travailler pour effectuer la jointure.
    C'est cela qui vous cause sans doute cette erreur.

    Plutôt que de bidouiller la mémoire, si vous estimez en avoir assez et que la table jointe côté SQL Server est très petite, alors faites un REMOTE JOIN.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/08/2014, 11h45
  2. Réponses: 2
    Dernier message: 25/06/2014, 19h58
  3. les préversions de Windows Server 2012 R2 et SQL Server 2014 disponibles
    Par Hinault Romaric dans le forum MS SQL Server
    Réponses: 32
    Dernier message: 21/03/2014, 16h42
  4. SQL Server 2014 disponible en version RTM
    Par Francis Walter dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 19/03/2014, 20h14
  5. TechEd 2013 : Microsoft dévoile Windows Server 2012 R2 et SQL Server 2014
    Par Gordon Fowler dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 04/06/2013, 12h10

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