找出占用空间的TFS中的哪个项目

问题描述 投票:1回答:1

我们需要弄清楚哪些项目使我们的TFS数据库失控,我们found this script但它不适用于最新版本的TFS。

有人有任何更新的脚本吗?

tfs tfs2017
1个回答
2
投票

首先,你可以运行一个SQL脚本来显示过去几个月tbl_Content的增加:

SELECT DATEPART(yyyy, CreationDate) AS [year]
    ,DATEPART(mm, CreationDate) AS [month]
    ,COUNT(*) AS [count]
    ,SUM(DATALENGTH(Content)) / 1048576.0 AS [Size in Mb]
    ,(SUM(DATALENGTH(Content)) / 1048576.0) / count(*) AS [Average Size]
FROM tbl_Content
GROUP BY DATEPART(yyyy, CreationDate)
    ,DATEPART(mm, CreationDate)
ORDER BY DATEPART(yyyy, CreationDate)
    ,DATEPART(mm, CreationDate)

这将反映您的收集数据库是否有异常增加。然后你可以看看tbl_Content中数据的“所有者”的分布,例如VersionControl,Work Item,Test ......哪个区域的百分比最大。

详细SQL脚本:

SELECT Owner = CASE
    WHEN OwnerId = 0 THEN 'Generic'
    WHEN OwnerId = 1 THEN 'VersionControl'
    WHEN OwnerId = 2 THEN 'WorkItemTracking'
    WHEN OwnerId = 3 THEN 'TeamBuild'
    WHEN OwnerId = 4 THEN 'TeamTest'
    WHEN OwnerId = 5 THEN 'Servicing'
    WHEN OwnerId = 6 THEN 'UnitTest'
    WHEN OwnerId = 7 THEN 'WebAccess'
    WHEN OwnerId = 8 THEN 'ProcessTemplate'
    WHEN OwnerId = 9 THEN 'StrongBox'
    WHEN OwnerId = 10 THEN 'FileContainer'
    WHEN OwnerId = 11 THEN 'CodeSense'
    WHEN OwnerId = 12 THEN 'Profile'
    WHEN OwnerId = 13 THEN 'Aad'
    WHEN OwnerId = 14 THEN 'Gallery'
    WHEN OwnerId = 15 THEN 'BlobStore'
    WHEN OwnerId = 255 THEN 'PendingDeletion'
    END,
    SUM(CompressedLength) / 1024.0 / 1024.0 AS BlobSizeInMB
FROM tbl_FileReference AS r
JOIN tbl_FileMetadata AS m ON r.ResourceId = m.ResourceId
    AND r.PartitionId = m.PartitionId
WHERE r.PartitionId = 1
GROUP BY OwnerId
ORDER BY 2 DESC

(有关更多信息,请参阅评论中提供的link @jessehouwing。)

要减小tbl_Content表的大小,可以参考以下博客:TFS tbl_Content Table and Database growth out of control

  1. 清理一些您不再需要的旧工作区。
  2. 运行tf destory command永久删除那些不必要的源文件。
  3. 使用TFS电源工具clean Test attachments和测试结果。
© www.soinside.com 2019 - 2024. All rights reserved.