Ormai è qualche mese che usiamo TFS 2010 e io da poco ho avuto la brillante idea di attivare i test autoamtici su ogni build, con tanto di registrazione degli eventi Intellitrace con un limite di 100Mb per file. Fantastico … … peccato che dopo 500 build il nsotro fantastico DB era diventato di 50Gb e aveva occupato tutto il disco :S
Chiaramente sono corso ai ripari disattivando subito l’Intellitrace su ogni build (in Continuous Integration), estendendo leggermente il disco dati, mettendo il recovery model del DB in simple, facendo un bel backup con successivo shrink del transaction log.
A questo punto il modo più veloce che ho trovato per cancellare questi mega allegati è stato di operare direttamente sul DB della Defaultcollection con il seguente TSQL:
delete from tbl_AttachmentContent where AttachmentId in (SELECT top 10 tbl_Attachment.AttachmentId
FROM tbl_Attachment ORDER BY tbl_Attachment.UncompressedLength DESC, tbl_Attachment.AttachmentId)
delete from tbl_Attachment where AttachmentId in (SELECT top 10 tbl_Attachment.AttachmentId
FROM tbl_Attachment ORDER BY tbl_Attachment.UncompressedLength DESC, tbl_Attachment.AttachmentId)
Come vedete elimino 10 record alla volta, perchè l’eliminazione porta ad una crescita del transaction log di circa 1Gb e avendo pochissimo spazio a disposizone inizialmente ho fatto 10 allegati alla volta, dopo qualche shrink del DB sono salito a 50.
Adesso il nostro TFS è di nuovo in forma.
posted @ mercoledì 3 febbraio 2010 18:42