|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 25 ![]() |
Bonjour à tous, merci de prendre le temps de m'aider à résoudre mon problème
![]() (mon problème est dans le cadre pro) J'ai un système Windows serveur 2003 avec MSSQL 2003. Le système développé est entièrement fonctionnel depuis maintenant près de 8 mois et récemment le client me tel en se plaignant de lenteur du système. Après diagnostique voila les conclusion : Espace disque C: < 5Mo source du problème fichier « C:\ Program Files\Microsoft SQL Server\MSSQL$SHAREPOINT\Data\ templog.ldf » = 95Go Je n'ai pas de besoin direct de ce fichier log ... Apparement il est réinitialisé à chaque redémarrage du serveur (taille = 5Mo) Le redémarrage ma permis de pallier temporairement au problème mais bon, dans 8 mois on me rappellera encore et puis c pas propre ... bref Sauriez vous quelles solutions seraient applicable pour résoudre cette situation ? Merci à vous |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Bonjour,
Vous pouvez proposer de déplacer les fichiers de TempDB vers d'autres disques à l'aide de l'instruction suivante suivie d'un redémarrage : Code :
Veillez également à séparer les fichiers de données des fichiers des journaux de transactions des bases de données héberges par l'instance en question. Essayez également de voir quelles sont les requêtes qui ont recours à l'utilisation de TempDB (utilisation de variables de type TABLE, tables temporaires, tris (DISTINCT ou UNION sans ALL, GROUP BY, tables de hachage, réindexations, ...) @++
__________________
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 |
||
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 25 ![]() |
Merci pour tes conseils.
Grand merci pour le code aussi C'est vrais que j'ai d'autres lecteurs à grosse capacité mais cela n'empêcherais pas que cette base grossisse ? Pensez-vous qu'un plan de maintenance avec un shrink de la bdd réduirait la taille de celle-ci ? J'ai énormément de requette de type "join, table, order, etc ..." car je fais beaucoup de reporting horaire, journalier,mensuel etc ... sur plus de 50 unitées différentes (soit environ 50 rapports par heures contenant souvent plusieurs des ces fonctions) et pas mal de fonction d'inetgration de mesure etc ... Donc j'en suis très dépendant ... Donc le déplacement des bases pourrais convenir, mais je ne pense pas que se soit une finalité en soit. Pouvons nous limiter la taille de cette base ? ou le plan de maintenance est possible ? Merci
|
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Un petit complément aux propos de Elsuket :
- Dédier des disques ou une architecture disque rapide pour tempdb. Cette base est surtout sollicité en écriture. Si votre base tempdb grossit, c'est peut être normal mais vous pouvez utiliser les vues systèmes appropriés et compteurs qui permettront de voir ce qui utilise cette base. Citation:
Citation:
++ |
||
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 25 ![]() |
Citation:
Alors j'ai réussi à mettre les deux bases sur deux hdd différents nickel et sa à l'aire de fonctionner ![]() Citation:
(je comprend mieux l'utilité de tempdb.mdf maintenant :p ) donc sa va être très du de modifier (optimiser?) le code... J'aurais vraiment besoin de savoir si il est possible de diminuer (pendant l'exploitation) la taille du fichier tempdb.ldf (sachant que la taille de tempdb.mdf reste accéptable) mercii |
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
oui il est possible de faire un truncate de votre fichier log en exploitation ..
Cependant si votre fichier journal est amené à regrossir à nouveau vous allez crééer de la fragmentation physique de votre fichier ... Il vaut mieux réserver une bonne fois pour toute l'espace nécessaire que de tenter de réduire même tous les 6 mois le journal. En plus celui-ci se vide automatiquement car le mode de récupération de cette base est en SIMPLE. ++ |
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 25 ![]() |
|
|
|
00
|
|
|
#8 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Elle se vide à chaque fin de transaction.
Attention, les informations se vide mais l'espace disque réservé, lui, reste inchangé. C'est le contenu qui est effacer, non le contenant. |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : décembre 2007 Messages : 25 ![]() |
|
|
|
00
|
|
|
#10 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Il n'y a aucun intérêt à cela.
Pour comprendre, Dans tous les composants participant au temps d'exécution d'un traitement sur un ordinateur en général, les accès disques sont ce qu'il y a de plus lent. le facteur entre en accès disque et mémoire est de 1000 voir plus. Or si votre fichier .ldf, dont la base est en mode de récupération simple, atteint un jour la taille de 10Go, c'est qu'une transaction unique a nécessitée cette espace. Au moment de ce besoin, le moteur de base de données a demandé au système de lui allouer ces 10Go d'espace sur le disque. Si on rajoute le fait que votre base n'est pas forcément bien paramétrée, il a demandé cela par palier de 10mo... Chaque allocation d'espace disque coûte énormément de temps au moteur de base de données. Si à la fin de l'opération, vous réduisez la taille physique de votre fichier à ce qu'il reste dedans (c'est à dire rien), à la prochaine opération nécessitant autant d'espace, le moteur va re-perdre ce temps très important pour re-allouer l'espace disque. Par contre, si le fichier n'est pas réduit (commande SHRINK), le contenant représentant toujours 10go, la transaction suivante qui aura besoin de 1àgo d'espace n'aura pas à perdre le temps de réallouer l'espace sur le disque, il sera déjà réservé sur le disque. d'où un gain important de performance. Enfin, comme l'explique mikedavem il faut se poser la question de l'identification de la transaction qui a fait autant augmenter la taille de votre fichier. Explication un peu longue mais que j'espère claire ? |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Patrick LAMBINRetraité Inscription : décembre 2010 Messages : 23 ![]() |
Bonjour,
Si j'ai bien compris cette discussion, elle concerne la place prise par le fichier log de la base tempdb de l'instance SQL server utilisée par SharePoint. Serait-il possible de redémarrer cette instance ? Si j'ai bien compris les explications données par Kaleen Delaney dans son livre Inside Microsof SQL Server 2005 : the Storage Engine ( pages 135/136 ), la base tempdb est automatiquement recrée à la taille de la base Model quand on redémarre l'instance SharePoint. De plus, celà permettrait d'utiliser un nouveau fichier log pour l'instance ( ce fichier log devient illisible quand il est trop grand ). J'ai souvent vu des gens se plaindre de la place prise par les fichiers .ldf de tempdb et des fichiers log de l'instance parce qu'ils n'avaient jamais redémarré leur instance depuis plus d'un an.La seule solution que je connaisse est le redémarrage du service SQL Server associé à l'instance. Bonne journée |
|
|
00
|
|
|
#12 | |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 770 ![]() |
Citation:
Vous réalisez une opération pompier sans prendre en considération tous les effets indésirables. Redémarrer une instance SQL provoque beaucoup plus de choses que vous ne semblez imaginer. Alors que si l'on fait en sorte que la tempDB reste dans une taille correcte ou au pire de l'opération pompier, on réduit physiquement la taille du fichier de log, les effets indésirables ne seront pas du tout les mêmes. |
|
|
|
00
|
|
|
#13 | |
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 612 ![]() |
Citation:
Le contrôle de la taille des journaux de transactions sur disque ne dépend que du mode de récupération des transactions de la base concernée, et de l'espace nécessaire pour jouer les transactions, sur tempdb comme sur les autres bases. Il faut identifier quelles transactions sont ouvertes dans tempdb et pourquoi elles consomment autant d'espace. Redémarrer une instance devrait être la dernière option à considérer (on repart avec un buffer pool vide, il faut recompiler tous les plans et tous les compteurs exposés par les DMV sont aussi flushés).
__________________
David B. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com