Partager via


Configurer les paramètres tempdb pour Azure SQL Managed Instance

S’applique à : Azure SQL Managed Instance

Cet article vous apprend à configurer vos paramètres tempdb pour Azure SQL Managed Instance.

Azure SQL Managed Instance vous permet de configurer les éléments suivants :

  • Nombre de fichiers tempdb
  • Incrément de croissance des fichiers tempdb
  • Taille maximale tempdb

Les paramètres tempdb sont conservés une fois votre instance redémarrée, mise à jour ou en cas de basculement.

Vue d'ensemble

tempdb est l’une des bases de données système par défaut qui est fournie avec Azure SQL Managed Instance. La structure de tempdb est la même que toute autre structure de base de données utilisateur ; la différence est que, étant donné que tempdb est utilisé pour le stockage non durable, les transactions sont journalisées au minimum.

tempdb ne peut pas être supprimé, détaché, mis hors connexion, renommé ou restauré. Tenter l’une de ces opérations retourne une erreur. tempdbest régénéré à chaque démarrage de l’instance du serveur et tous les objets qui ont pu être créés dans tempdb au cours d’une session précédente ne sont pas conservés lorsque le service redémarre, après une opération de gestion des mises à jour de l’instance ou un basculement.

La charge de travail dans tempdb diffère des charges de travail dans d’autres bases de données utilisateur ; les objets et les données sont fréquemment créés et détruits, et la concurrence est extrêmement élevée. Il n’y en a qu’un tempdb pour chaque instance gérée. Même si plusieurs bases de données et applications se connectent à l’instance, elles utilisent toutes la même base de données tempdb. Les services peuvent rencontrer une contention lorsqu’ils essaient d’allouer des pages dans un tempdb fortement utilisé. Selon le degré de contention, les requêtes et les demandes qui impliquent tempdb peuvent ne plus répondre. C’est pourquoi tempdb est essentiel aux performances du service.

Nombre de fichiers tempdb

L’augmentation du nombre de fichiers de données tempdb crée une ou plusieurs pages GAM et SGAM pour chaque fichier de données, ce qui permet d’améliorer la concurrence tempdb et de réduire la contention des pages PFC. Toutefois, l’augmentation du nombre de fichiers de données tempdb peut avoir d’autres conséquences sur les performances. Par conséquent, effectuez des tests approfondis avant d’implémenter en production.

Par défaut, Azure SQL Managed Instance crée 12 fichiers de données tempdb et 1 fichier journal tempdb, mais il est possible de modifier cette configuration.

La modification du nombre de fichiers tempdb présente les limitations suivantes :

  • Le nom logique du nouveau fichier ne respecte pas la casse, avec un maximum de 16 caractères et aucun espace.
  • Nombre maximal de fichiers tempdb est de 128.

Notes

Vous n’avez pas besoin de redémarrer le serveur après avoir ajouté de nouveaux fichiers. Toutefois, les fichiers vides seront remplis avec une priorité plus élevée et l’algorithme de tourniquet pour l’allocation de pages est perdu jusqu’à ce que le système soit rééquilibré.

Vous pouvez utiliser SQL Server Management Studio (SSMS) et Transact-SQL (T-SQL) pour modifier le nombre de fichiers pour tempdb dans Azure SQL Managed Instance.

Vous pouvez utiliser SQL Server Management Studio (SSMS) pour modifier le nombre de fichiers tempdb. Pour ce faire, procédez comme suit :

  1. Connectez-vous à votre instance gérée dans SSMS.

  2. Dans Explorateur d'objets, développez Bases de données, puis Bases de données système.

  3. Cliquez avec le bouton droit sur tempdb et choisissez Propriétés.

  4. Pour afficher le nombre existant de fichiers tempdb, sous Sélectionner une page, sélectionnez Fichiers.

  5. Pour ajouter un fichier, choisissez Ajouter, puis fournissez des informations sur le nouveau fichier de données dans la ligne.

    Capture d’écran des propriétés de la base de données dans SSMS, avec le nouveau nom de fichier de base de données mis en évidence.

  6. Pour supprimer un fichier tempdb, choisissez le fichier que vous souhaitez supprimer de la liste des fichiers de base de données, puis sélectionnez Supprimer.

Incrément de croissance

La croissance des fichiers tempdb peut avoir un impact sur les performances des requêtes à l’aide de tempdb. Par conséquent, les incréments de croissance des fichiers de données tempdb qui sont trop petits peuvent entraîner une fragmentation de l’étendue, tandis que les incréments trop importants peuvent entraîner une croissance lente ou un échec de croissance s’il n’y a pas suffisamment d’espace pour la croissance. La valeur optimale pour les incréments de croissance des fichiers tempdb dépend de votre charge de travail.

Les incréments de croissance par défaut pour SQL Managed Instance sont de 254 Mo pour les fichiers de données tempdb et de 64 Mo pour les fichiers journaux tempdb, mais vous pouvez configurer des incréments de croissance pour s’adapter à votre charge de travail et optimiser vos performances.

Tenez compte des éléments suivants :

  • Le paramètre de croissance de fichier prend en charge les unités suivantes pour int_growth_increment : Ko, Mo, Go, To et %.
  • Les incréments de croissance doivent être les mêmes pour tous les fichiers de données tempdb, sinon, l’algorithme de tourniquet qui alloue des pages pourrait être impacté.

Vous pouvez utiliser SQL Server Management Studio (SSMS) et Transact-SQL (T-SQL) pour modifier l’incrément de croissance de vos fichiers tempdb.

Vous pouvez utiliser SQL Server Management Studio (SSMS) pour modifier l’incrément de croissance des fichiers tempdb. Pour ce faire, procédez comme suit :

  1. Connectez-vous à votre instance gérée dans SSMS.

  2. Dans Explorateur d'objets, développez Bases de données, puis Bases de données système.

  3. Cliquez avec le bouton droit sur tempdb et choisissez Propriétés.

  4. Pour afficher le nombre existant de fichiers tempdb, sous Sélectionner une page, sélectionnez Fichiers.

  5. Choisissez les points de suspension (...) en regard d’un fichier de données pour ouvrir la boîte de dialogue Modifier les propriétés de croissance automatique.

  6. Cochez la case à côté de Activer la croissance automatique, puis modifiez vos paramètres de croissance automatique en spécifiant les valeurs de croissance du fichier, en pourcentage ou en mégaoctets.

    Capture d’écran de modification de la croissance automatique pour tempdev dans SSMS, avec le nouveau nom de fichier de base de données mis en évidence.

  7. Sélectionnez OK pour enregistrer vos paramètres.

Taille maximale

tempdbLa taille est la taille de somme de tous tempdb les fichiers. La taille de fichier tempdb est un espace alloué (zéro) pour ce fichier tempdb. La taille de fichier initiale de tous les fichiers tempdb est de 16 Mo, soit la taille de tous les fichiers tempdb lorsque l’instance redémarre ou bascule. Une fois que l’espace utilisé d’un fichier de données tempdb atteint la taille du fichier, tous les fichiers de données tempdb augmentent automatiquement par incréments de croissance configurés.

L’espace utilisé tempdb est la somme de l’espace utilisé de tous les fichiers tempdb. L’espace utilisé du fichier tempdb est égal à la partie de cette taille de fichier tempdb qui est occupée par des informations différentes de zéro. La somme de tempdb l’espace utilisé et tempdb de l’espace libre est égale à la tempdb taille.

Vous pouvez utiliser T-SQL pour déterminer l’espace actuel utilisé et l’espace libre pour vos fichiers tempdb.

Pour obtenir l’espace utilisé, l’espace libre et la taille de vos fichiers de données tempdb, exécutez la commande suivante :

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB, 
	SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB, 
	SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB 
FROM sys.dm_db_file_space_usage

La capture d’écran suivante présente un exemple de cette opération :

Capture d’écran du résultat de la requête dans SSMS montrant l’espace utilisé et libre dans le fichier de données tempdb.

Pour obtenir l’espace utilisé, l’espace libre et la taille de vos fichiers journaux tempdb, exécutez la commande suivante :

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

La capture d’écran suivante présente un exemple de cette opération :

Capture d’écran du résultat de la requête dans SSMS montrant l’espace utilisé et libre dans le fichier journal tempdb.

La taille maximale tempdb est la limite au-delà de laquelle votre tempdb ne peut plus croître.

La taille maximale tempdb dans SQL Managed Instance présente les limitations suivantes :

  • Dans le niveau de service usage général, la taille maximale pour tempdb est limitée à 24 Go/vCore (96 à 1920 Go) et le fichier journal est de 120 Go.
  • Dans le niveau de service critique pour l'entreprise, tempdb est en concurrence avec d’autres bases de données pour les ressources, de sorte que le stockage réservé est partagé entre tempdb et d’autres bases de données. La taille maximale du fichier journal tempdb est de 2 To.

Les fichiers tempdb augmentent jusqu’à ce qu’ils atteignent la limite maximale autorisée par le niveau de service ou par la taille maximale de fichier tempdb configurée manuellement.

Vous pouvez utiliser SQL Server Management Studio (SSMS) et Transact-SQL (T-SQL) pour modifier la taille maximale de vos fichiers tempdb.

Pour déterminer votre taille maximale tempdb actuelle dans SSMS, procédez comme suit :

  1. Connectez-vous à votre instance gérée dans SSMS.
  2. Dans Explorateur d'objets, développez Bases de données, puis Bases de données système.
  3. Cliquez avec le bouton droit sur tempdb et choisissez Propriétés.
  4. Pour déterminer la taille maximale de tempdb, dans la page Général, sous Base de données, vérifiez la valeur Taille. La valeur de -1 indique que la taille maximale de tempdb est illimitée.

Capture d’écran des propriétés de la base de données tempdb montrant la taille maximale de tempdb dans SSMS.

Pour modifier votre taille maximale actuelle de tempdb dans SSMS, procédez comme suit :

  1. Connectez-vous à votre instance gérée dans SSMS.
  2. Dans Explorateur d'objets, développez Bases de données, puis Bases de données système.
  3. Cliquez avec le bouton droit sur tempdb et choisissez Propriétés.
  4. Pour afficher le nombre existant de fichiers tempdb, sous Sélectionner une page, sélectionnez Fichiers.
  5. Choisissez les points de suspension (...) en regard d’un fichier de données pour ouvrir la boîte de dialogue Modifier les propriétés de croissance automatique.
  6. Modifiez vos paramètres de taille maximale de tempdb en modifiant les valeurs sous Taille de fichier maximale.
  7. Sélectionnez OK pour enregistrer vos paramètres.

Capture d’écran de la boîte de dialogue Modifier la croissance automatique dans SSMS, avec la taille de fichier maximale mise en évidence.

Limites de tempdb

Le tableau suivant définit des limites pour différents paramètres de configuration de tempdb :

Paramètre de configuration Valeurs
Noms logiques des fichiers tempdb 16 caractères maximum
Nombre de fichiers tempdb 128 fichiers maximum
Nombre de fichiers tempdb par défaut 13 (1 fichier journal + 12 fichiers de données)
Taille initiale des fichiers de données tempdb 16 Mo
Incrément de croissance par défaut des fichiers de données tempdb 256 octets
Taille initiale des fichiers journaux tempdb 16 Mo
Incrément de croissance par défaut des fichiers journaux tempdb 64 Mo
Taille maximale initiale de tempdb -1 (illimité)
Taille maximale de tempdb Jusqu’à la taille de stockage

Étapes suivantes