-
tempdb qui augmente
Bonjour,
J'ai des bases de données installées sur sql server 2000. depuis un certain temps, la base de donnée tempdb ne fait qu'augmentée et qu'actuellmenet, elle est à 30 giga. cela nous pose un gros problème de place.
Je souhaite savoir comment faire pour savoir la cause exacte de l'augmentation de tempdb, comment le resoudre ?
Merci de vos conseils.
-
tempdb
De ce que j'en sais TEMPDB est utilisé pour les tris. Quel est la taille totale de tes bases sur ce serveur ?
-
sans la taille de tempdb, la taille totale des bases est de 12 giga.
Merci
-
redemarrer le serveur.
Si ton serveur n'a pas de problème, lors du redemarrage de sql serveur, la taille de la base TEMPDB doit reprendre sa taille initiale.
Est ce que vous faites une grosse utilisation de tables temporaires ?
"The tempdb database is re-created every time SQL Server starts. This database is used more often in SQL Server 7.0/2000 in comparison with SQL Server 6.5, so the size of this database can be increased on 25-50 percentages. There is no option 'tempdb in RAM' in SQL Server 7.0/2000. Microsoft recommends placing the tempdb on a fast I/O subsystem to get good performance. In this case, try to use RAID 0 disks for tempdb database.
Now tempdb database can automatically grow, so not necessary to make tempdb very large. Autogrow feature is set by default. Each time the SQL Server is started, tempdb database is reset to its default size. Automatically growing results in some performance degradation, therefore you should set a reasonable size for tempdb database and a reasonable autogrow increment to avoid tempdb automatically growing too often.
"
-
tempdb contient :
1) les objets temporaires explicitement créées par les développeurs : CREATE TABLE #..., CREATE TABLE ##...,
2) les objets temporaires implicitement créés par le moteur SQL (worktable)
3) les tris et les group by lorsque le volume de données est important
4) les tris des index lors de leur création si ces derniers sont important ou que l'option CREATE IN TEMDB a été précisé
5) les lignes contenant des valeurs dans le passé si vous utilisez le niveau d'isolation SNAPSHOT (v 2005)
Je dirais qu'en général une utilisation outrancière de la tempdb est l'indication d'un développement à l'arrachée basée sur une utilisation massive de tables temporaires, de curseurs et autres objets utilisant massivement la base et que les développeurs ont oublié de détruire après utilisation...
A +
-
Merci de cette explication. Comment comment faire pour diagnostiquer cela afin de savoir qui ou quelle requête est à l'origine de cela ?
Merci.