TempDB
J'ai fait des recherches il y a quelque temps sur l'optimisation de tempdb et j'ai répondu à mes propres questions. question sur Stackoverflow . Voici ce que j'ai découvert.
Afin d'optimiser les performances de tempdb, il convient de prêter attention à la configuration du disque physique, à la configuration des fichiers, ainsi qu'à certains paramètres de la base de données.
Configuration du disque physique
tempdb doit résider sur son ses propres disques physiques dédiés . Cela lui permet de séparer les transactions d'entrée/sortie du reste des volumes sur le serveur SQL.
Pour déplacer tempdb vers une nouvelle unité de disque, utilisez la commande suivante ALTER DATABASE
. Il s'agit de la commande T-SQL clé pour effectuer cette opération. Microsoft propose un bon exemple dans SQL Server 2005 Books Online. Le nom de l'article est ALTER DATABASE (Transact-SQL) et la section spécifique est G. Moving tempdb to a new location".
La base de données tempdb est une base de données à très forte capacité d'écriture. Par conséquent, une matrice RAID 5 n'est pas l'endroit approprié pour elle. Vous devez placer la base de données tempdb sur une matrice RAID 1 ou RAID 10 car ils sont optimisés pour les applications à forte capacité d'écriture. Si vous pouvez vous permettre d'utiliser des matrices RAID 1 ou RAID 10 supplémentaires pour chaque fichier de base de données physique pour la tempdb, vous obtiendrez des performances accrues.
Fichiers de base de données
Vous devez avoir un fichier physique par cœur de processeur dans le serveur . Ainsi, si vous disposez d'un serveur à double puce et à double cœur, vous devez avoir quatre fichiers de base de données physiques pour la base de données tempdb. Lorsque vous ajoutez des fichiers de base de données supplémentaires, il est important de configurer les fichiers au niveau de l'onglet la même taille initiale et les mêmes paramètres de croissance . De cette manière, SQL Server écrira les données dans les fichiers de la manière la plus homogène possible.
Taille du fichier de la base de données
La taille de la base de données tempdb peut affecter les performances d'un système. Par exemple, si la taille définie pour tempdb est trop petite, une partie de la charge de traitement du système peut se retrouver dans la base de données tempdb. pris en charge par la croissance automatique de tempdb jusqu'à la taille requise pour supporter la charge de travail à chaque fois que vous redémarrez l'instance de SQL Server. . Vous pouvez éviter cette surcharge en augmentant la taille des données tempdb et du fichier journal.
La détermination de la taille appropriée de tempdb dans un environnement de production dépend de nombreux facteurs, notamment de la charge de travail existante et des fonctions SQL Server utilisées. Microsoft recommande d'analyser la charge de travail existante en effectuant les tâches suivantes dans un serveur SQL test l'environnement :
- Activer la croissance automatique pour tempdb (dans un environnement de test !) .
- Exécutez des requêtes individuelles ou des fichiers de suivi de la charge de travail et surveillez l'utilisation de l'espace tempdb.
- Exécuter des opérations de maintenance d'index, telles que la reconstruction d'index, et surveiller l'espace tempdb.
- Utilisez les valeurs d'utilisation de l'espace des étapes précédentes pour prévoir l'utilisation totale de votre charge de travail ; ajustez cette valeur en fonction de l'activité simultanée prévue, puis définissez la taille de tempdb en conséquence.
La taille minimale recommandée pour tempdb est la suivante :
Envir. Size DB Size (MB) Log Size (MB)
----------- ------------ -----------
Small 1024 256
Medium 5120 1024
Large 10024 2048
Paramètres de la base de données
Vous pouvez encore améliorer les performances de tempdb en désactivation de la mise à jour automatique des statistiques ce qui épargnera du travail à votre tempdb. Vous pouvez également définir l'option option de création automatique de statistiques à false .
Avertissement : les réglages doivent être modifiés avec précaution. En fonction de la charge que vous faites peser sur votre tempdb, la modification des paramètres peut avoir un impact négatif sur les performances du système.
Pour obtenir des performances optimales de tempdb, suivez les lignes directrices et les recommandations fournies dans le document Optimiser les performances de tempdb .
Comment surveiller l'utilisation de tempdb ?
La course à pied manque d'espace disque dans la base de données tempdb peut provoquer des perturbations importantes dans l'environnement de production du serveur SQL et peut empêcher les applications en cours d'exécution de terminer leurs opérations.
Vous pouvez utiliser le sys.dm_db_file_space_usage
pour surveiller l'espace disque utilisé par ces fonctionnalités dans les fichiers tempdb. En outre, pour surveiller l'activité d'allocation ou de désallocation de pages dans tempdb au niveau de la session ou de la tâche, vous pouvez utiliser la fonction sys.dm_db_session_space_usage
y sys.dm_db_task_space_usage
des vues de gestion dynamiques.
Ces vues peuvent être utilisées pour identifier les requêtes volumineuses, les tables temporaires ou les variables de table qui utilisent beaucoup d'espace disque tempdb. Il existe également plusieurs compteurs qui peuvent être utilisés pour surveiller l'espace libre disponible dans tempdb et les ressources qui utilisent tempdb.
Liens :