我们一直使用构建的旧样式(XAML)直到一个月之前,然后开始使用vNext构建。之后我发现TFS数据库中的tbl_Content表开始增长非常快。例如,在过去8小时内它增长了10 GB,我无法弄清楚它为什么会这样做。有谁知道它是什么?
我说它是vNext构建的原因是因为我注意到它在我们升级后开始增长,但我的方式是错的。我希望它不是试图存储我的构建输出或类似的东西。有没有办法知道tbl_Content表中的内容?他们可以删除吗?或者有没有办法从该表中删除一些东西而不会弄乱TFS?
答案 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 :(得分:1)
我在谷歌上搜索并尝试各种各样的事情,看看是什么导致了这个问题。其他问题是没有关于TFS数据库架构的文档。在玩TFS数据库花了将近10个小时之后,我几乎成了TFS DB专业版。查询tbl_Content,tbl_FileMetadata和tbl_FileType帮助我很难确定究竟是什么导致了这个问题。
所以最后从 MSBuild参数中删除 / v:diag 修复了我的问题。我不确定它对数据库的影响是什么,但是每个构建都在向数据库添加接近1GB的数据。