[статья неокончена]
При запуске тестов (ручных или автоматических) на TFS создаётся много файлов, например:
- логи IntelliTrace (.ITrace);
- логи видео;
- логи результатов тестов (.TRX);
- Code Coverage (.COV).
Информация в этих файлах очень полезна для анализа ошибок в коде. Но проблемой является то, что эти данные могут быстрыми темпами увеличить размер базы данных коллекции. Администратору TFS необходимо настроить политику ограничения размера и политику хранения прикрепляемых к тесту данных.
Запрос, показывающий размер всех таблиц в базе данных:
CREATE TABLE #t (     
 [name] NVARCHAR(128),    
 [rows] CHAR(11),    
 reserved VARCHAR(18),     
 data VARCHAR(18),     
 index_size VARCHAR(18),    
 unused VARCHAR(18)) 
GO
INSERT #t 
EXEC [sys].[sp_MSforeachtable] 'EXEC sp_spaceused ''?''' 
GO
SELECT 
    name as TableName, 
    Rows, 
    ROUND(CAST(REPLACE(reserved, ' KB', '') as float) / 1024,2) as ReservedMB, 
    ROUND(CAST(REPLACE(data, ' KB', '') as float) / 1024,2) as DataMB, 
    ROUND(CAST(REPLACE(index_size, ' KB', '') as float) / 1024,2) as IndexMB, 
    ROUND(CAST(REPLACE(unused, ' KB', '') as float) / 1024,2) as UnusedMB 
FROM #t 
ORDER BY CAST(REPLACE(reserved, ' KB', '') as float) DESC 
GO
DROP TABLE #t 
GO
Запрос показывающий рост вложений в базе коллекции:
SELECT  
  DATEADD(month,DATEDIFF(month,0,creationdate),0) as [Month], 
  SUM(CompressedLength) / 1024 / 1024 as AttachmentSizeMB 
FROM tbl_Attachment WITH (nolock) 
GROUP BY DATEADD(month,DATEDIFF(month,0,creationdate),0)  
ORDER BY DATEADD(month,DATEDIFF(month,0,creationdate),0)
Запрос, показывающий размер данных в базе коллекции по проектам:
SELECT  
 p.projectname AS Project, 
 SUM(a.compressedlength)/1024/1024 as Mb from dbo.tbl_Attachment as a inner join tbl_testrun as tr on a.testrunid=tr.testrunid inner join tbl_project as p on p.projectid=tr.projectid
GROUP BY p.projectname
ORDER BY SUM(a.compressedlength) DESC
Запрос, показывающий какие типы вложений занимают наибольшее место в базе коллекции:
SELECT  
 a.attachmenttype, 
 SUM(a.compressedlength)/1024/1024 as sizeInMB from dbo.tbl_Attachment as a inner join tbl_testrun as tr on a.testrunid=tr.testrunid 
inner join tbl_project as p on p.projectid=tr.projectid
GROUP BY a.attachmenttype
ORDER BY SUM(a.compressedlength) DESC
Запрос, показывающий, файлы каких типов занимают наибольшее место:
SELECT  
 SUBSTRING(filename,len(filename)-CHARINDEX('.',REVERSE(filename))+2,999)as Extension, 
 SUM(compressedlength)/1024/1024 as Mb from tbl_Attachment
GROUP BY SUBSTRING(filename,len(filename)-CHARINDEX('.',REVERSE(filename))+2,999)
ORDER BY SUM(compressedlength) DESC
Для очистки таблицы базы от результатов тестов рекомендуется использовать Test Attachment Cleaner (
ссылка)
Ссылки: