我最近将我的主要系列分为两个系列(A和B),其中A包含我们正在积极处理的所有团队项目,B包含我们不再使用的所有项目。 A包含大约10个团队项目,B包含大约5.我按照本文中的分割集合的说明进行操作:https://docs.microsoft.com/en-us/vsts/tfs-server/admin/split-team-project-collection
在拆分之前,我们的数据库大约是33Gb。拆分后,据我所知,两个数据库的总和(收缩后)应该大致相同。相反,我们有两个关于33Gb的数据库。
我查看了这个帖子(https://connect.microsoft.com/VisualStudio/feedback/details/804226/collection-database-size-is-not-reduced-after-destroy-large-files-or-completely-delete-team-projects),我可以看到B我有大约25k个要删除的文件,A大约有100k。
我尝试过跑步:
EXEC prc_DeleteUnusedContent @partitionId = 1
EXEC prc_DeleteUnusedFiles 1, 0, 10
并且每个可以释放2-3GB的空间,但应该有更多的空闲。我的大多数数据都在tbl_content中(数据库B中的appox 28464856 KB)。 SQL报告A有大约3个可用空间,B大约有4.我希望这些数字接近10-15。
我觉得我错过了一些简单的事情。
答案 0 :(得分:0)
请注意,删除原始项目时,不会立即清除元数据和文件,因为TFS会在后台执行此类工作。在7天之后检查解决方案here。
如果要强制它,可以针对相关集合DB运行上面提到的命令:
EXEC prc_CleanupDeletedFileContent 1
EXEC prc_DeleteUnusedFiles 1, 0, 10
根据您的描述,这些命令是有效的。
但请注意,第二个命令中的chunksize 10
是批量大小,因此如果您的存储库包含的文件数量超过该数量,则可能需要多次运行该命令 。或者就像丹尼尔在你提到的链接中所说:如果你觉得它运行得足够快,你可以增加这个数字。
例如:EXEC prc_DeleteUnusedFiles 1, 0, 100000
另请注意,这可能会在后台的几天内完成。
此外,您还可以清洁测试附件。参考:When to use the Test Attachments Cleaner (and when not)
以下文章分析和缩小数据库供您参考: