[статья неокончена]
При запуске тестов (ручных или автоматических) на 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 (
ссылка)
Ссылки: