使用VNext构建后,TFS tbl_Content开始快速增长

时间:2017-09-15 05:45:36

标签: tfs build

我们一直使用构建的旧样式(XAML)直到一个月之前,然后开始使用vNext构建。之后我发现TFS数据库中的tbl_Content表开始增长非常快。例如,在过去8小时内它增长了10 GB,我无法弄清楚它为什么会这样做。有谁知道它是什么?

我说它是vNext构建的原因是因为我注意到它在我们升级后开始增长,但我的方式是错的。我希望它不是试图存储我的构建输出或类似的东西。有没有办法知道tbl_Content表中的内容?他们可以删除吗?或者有没有办法从该表中删除一些东西而不会弄乱TFS?

2 个答案:

答案 0 :(得分:1)

  

TFS数据库因各种原因而增长。一些常见的来源   失控的增长包括使用构建或发布自动化   配置适当的retention policies,创建一个   少量非常大的项目(工作项,版本控制文件,   人类或工具等等。我们在积压工作   使TFS数据库中的空间分布更容易被发现。

你可以尝试使用如下所示的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)

它能够知道查看"所有者"的分布情况。通过SQL查询获取tbl_Content中的数据。详细步骤请参阅 Aaron Hallberg的回复这个类似的问题:TFS Database size

要减小tbl_Content表的大小,您可以参考此博客:TFS tbl_Content Table and Database growth out of control,它可以概括为三个步骤:

  1. 清理一些您不再需要的旧工作区。
  2. 运行tf destory command以永久删除这些不必要的源文件。
  3. 使用TFS电源工具clean Test attachments并测试结果。

答案 1 :(得分:1)

我在谷歌上搜索并尝试各种各样的事情,看看是什么导致了这个问题。其他问题是没有关于TFS数据库架构的文档。在玩TFS数据库花了将近10个小时之后,我几乎成了TFS DB专业版。查询tbl_Content,tbl_FileMetadata和tbl_FileType帮助我很难确定究竟是什么导致了这个问题。

所以最后从 MSBuild参数中删除 / v:diag 修复了我的问题。我不确定它对数据库的影响是什么,但是每个构建都在向数据库添加接近1GB的数据。