Configuration du serveur : mémoire minimale par requête
S'applique à : SQL Server
Cet article explique comment configurer l’option de configuration du min memory per query
serveur dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. L’option min memory per query
spécifie la quantité minimale de mémoire (en kilo-octets) à allouer pour l’exécution d’une requête. Cela est également appelé « allocation de mémoire minimale ». Par exemple, si min memory per query
elle est définie sur 2 048 Ko, la requête est garantie pour obtenir au moins cette mémoire totale. La valeur par défaut est 1 024 Ko. La valeur minimale est de 512 Ko et la valeur maximale de 2 147 483 647 Ko (2 Go).
Limites
La valeur du paramètre min memory per query prévaut par rapport à celle du paramètre index create memory. Si vous modifiez ces deux options et que le paramètre index create memory est inférieur au paramètre min memory per query, un message d’avertissement s’affiche, mais la valeur définie est acceptée. Lors de l’exécution de requêtes, vous recevez un autre avertissement similaire.
Recommandations
Seul un administrateur de base de données qualifié ou un spécialiste agréé doit changer cette option avancée SQL Server.
Le processeur de requêtes SQL Server tente de déterminer la quantité de mémoire optimale à allouer à une requête. L'option min memory per query permet à l'administrateur de spécifier la quantité minimale de mémoire que reçoit n'importe quelle requête. Les requêtes reçoivent généralement une quantité de mémoire supérieure si elles doivent effectuer des opérations de hachage et de tri sur un grand volume de données. L’augmentation de la valeur de la mémoire minimale par requête peut améliorer les performances pour certaines requêtes de petite à moyenne taille, mais cela peut entraîner une concurrence accrue pour les ressources mémoire. L’option min memory per query inclut la mémoire allouée aux opérations de tri.
Ne définissez pas la mémoire minimale par option de configuration du serveur de requête trop élevée, en particulier sur les systèmes très occupés, car la requête doit attendre1 jusqu’à ce qu’elle puisse sécuriser la mémoire minimale demandée ou jusqu’à ce que la valeur spécifiée dans l’option de configuration du serveur d’attente de requête soit dépassée. Si plus de mémoire est disponible que la valeur minimale spécifiée requise pour exécuter la requête, la requête est autorisée à utiliser la mémoire supplémentaire, si la mémoire peut être utilisée efficacement par la requête.
1 Dans ce scénario, le type d’attente est généralement RESOURCE_SEMAPHORE
. Pour plus d’informations, consultez sys.dm_os_wait_stats.
autorisations
Les autorisations d’exécution de sp_configure
, sans paramètre ou avec le premier paramètre uniquement, sont accordées par défaut à tous les utilisateurs. Pour exécuter sp_configure
avec les deux paramètres afin de modifier une option de configuration ou pour exécuter l’instruction RECONFIGURE
, un utilisateur doit disposer de l’autorisation ALTER SETTINGS
au niveau du serveur. L’autorisation ALTER SETTINGS
est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin.
Utiliser SQL Server Management Studio
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés.
Sélectionnez le nœud Mémoire .
Dans la zone Mémoire minimale par requête , entrez la quantité minimale de mémoire (en kilo-octets) à allouer pour l’exécution d’une requête.
Utiliser Transact-SQL
Connectez-vous au Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. Cet exemple montre comment utiliser sp_configure pour attribuer à l’option
min memory per query
la valeur3500
Ko.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'min memory per query', 3500; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Suivi : après avoir configuré la mémoire minimale par option de requête
Le paramètre prend effet immédiatement sans redémarrage du serveur.