Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 09h23   #1
Invité de passage
 
Homme Evan Barke
Administrateur de base de données
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Evan Barke
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Par défaut TempDB trop grosse

Bonjour tous,

Je suis assez débutant dans le monde de BDDs. J'ai récemment adopté un système de BDDs et je un problème avec la taille de la base tempDB:

Plus précisement nous avons une baie de disques sytème blade et dedans on a plusieurs partitions. Les données des bases de prod sont sur un autre disque avec assez d'éspace. Par contre le disque qui heberge nos bases systèmes fait que 90Go.

Notre système (un site web) est très transactionnel et donc le tempDB fait 46Go sur le disque. Récemment on a lancé une tâche planifiée de mauvaise architecture et le tempDB a gonflé jusqu'au point que le disque était absolument plein. J'ai du donc redémarrer l'instance pour restaurer le service.

Par contre la base tempDB fait toujours 46Go (ou il utilise actuellement 1.5Go)

Les autre devs me demandent de faire un SHRINKDATABASE sur le tempDB mais je suis pas persuadé que cela soit une bonne chose à faire.

Vous avez des suggestions?
evanbarke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 13h51   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Vous avez raison de ne pas être persuadé que cela soit une bonne chose à faire. Les développeurs sont généralement nuls en matière d'admin de SGBDR !

Si tempdb a autant cru, c'est qu'elle est beaucoup utilisée, soit pour des objets explicite (création de tables temporaires, de variables tables ou d'UDF table) ou implicite (GROUP BY, ORDER BY, calcul d'agrégat sur des requêtes volumineuses, utilisation de trigger, du niveau d’isolation SNAPSHOT, de curseurs.......).

Donc vous avez deux solutions pour résoudre le problème :
1) faire en sorte que vos développeurs travaillent proprement en faisant du code ensembliste et non itératif (donc interdire les curseur, les tables temporaires, les variables table, les UDF table...) et minimisent l'utilisation des déclencheurs et du niveau d'isolation SNAPSHOT...
2) déplacer les fichiers de le tempdb sur d'autres disques, MS recommandant d'avoir le JT sur un agrégat très rapide (RAID 0+1 ou 10) et plusieurs fichiers de données, d'égale grandeur sur différents axes physiques.

A lire : http://blog.developpez.com/sqlpro/p8...t-le-stocakge/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/01/2012, 15h01   #3
Invité de passage
 
Homme Evan Barke
Administrateur de base de données
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Evan Barke
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Conseil

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Merci de votre réponse! Je pensait qu'effectivement la solution se trouve dans le déplacement des fichiers tempDB sur un autre disque ou nous avons pas mal d'espace restant. La question est maintenant : lequel des disques.

Cette manip va forcement demander un redémarrage de l'instance. Combien de temps dois-je envisager pour cela? C'est une instance de prod alors c'est moyen de le faire.
evanbarke est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h54   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Vous pouvez utiliser la commande ALTER DATABASE tempdb MODIFY FILE en production. Cela ne fait que modifier les métadonnées préventivement (pas de déplacement des fichiers).
Puis programmer un redémarrage de l'instance SQL via une tâche planifiée cette nuit par le planif de windows.
N'oubliez pas de la retirer le lendemain !
Et supprimez les anciens fichiers de tempdb devenus obsolètes...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 14h47   #5
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 674
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 674
Points : 8 741
Points : 8 741
Et n'oubliez pas de vérifier que le compte de service qui exécute SQL Server a le droit Perform volume maintenance tasks, de sorte que l'allocation des fichiers de TempDB se fasse rapidement

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h55.


 
 
 
 
Partenaires

Hébergement Web