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

tfs build

524 观看

2回复

2014 作者的声誉

直到一个月前,我们一直在使用旧样式(XAML),然后开始使用vNext版本。之后,我注意到TFS数据库中的tbl_Content表开始非常快地增长。例如,在过去的8个小时中,它增长了10 GB,我不知道为什么要这么做。有谁知道它是什么?

我之所以说它是vNext版本,是因为我注意到它在升级后开始增长,但是我错了。我希望它不是要存储我的构建输出或类似的东西。有没有办法知道tbl_Content表中的内容?可以删除它们吗?还是有办法从该表中删除某些内容而不会弄乱TFS?

作者: Dilshod 的来源 发布者: 2017 年 9 月 15 日

回应 2


1

33272 作者的声誉

TFS数据库的增长有各种原因。失控增长的一些常见来源包括在没有配置适当的保留策略的情况下使用构建或发布自动化,由人或工具创建少量非常大的项目(工作项目,版本控制文件等),等等。我们正在进行积压工作,以使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)

能够知道tbl_Content通过SQL查询查看数据的“所有者”的分布。详细步骤请参考以下类似问题的Aaron Hallberg的答复:TFS数据库大小

为了减少tbl_Content表的大小,您可以参考以下博客:TFS tbl_Content表和数据库增长失控,通常可以通过三个步骤来总结:

  1. 清理一些不再需要的旧工作区。
  2. 运行tf destory命令以永久删除那些不必要的源文件。
  3. 使用TFS电动工具清洁测试附件和测试结果。
作者: PatrickLu-MSFT 发布者: 2017 年 9 月 15 日

1

2014 作者的声誉

决定

我正在四处搜寻,并尝试做各种事情以查看造成问题的原因。另一个问题是没有有关TFS数据库架构的文档。在花费了将近10个小时的时间使用TFS数据库后,我几乎成为了TFS DB专业人士。在围绕tbl_Content,tbl_FileMetadata和tbl_FileType的查询中,我几乎无法弄清楚到底是什么引起了问题。

因此,从MSBuild参数中删除/ v:diag最终解决了我的问题。我不确定它到底放到数据库中什么了,但是每个版本都在向数据库中添加近1GB的数据。

作者: Dilshod 发布者: 2017 年 9 月 15 日
32x32