我们有TFS 2017.3和数据库很大 - 约1.6 TB 。
我想通过运行这两个存储过程来尝试清理空间:
运行它是否安全? 它是否有可能删除我目前使用的重要内容? (当然,我会在......之前做一个备份)。
这些存储过程中最好的值是什么?
另一件事 - 如果我运行此查询:
SELECT A.[ResourceId]
FROM [Tfs_DefaultCollection].[dbo].[tbl_Content] As A
left join [Tfs_DefaultCollection].[dbo].[tbl_FileMetadata] As B on A.ResourceId=B.ResourceId
where B.[ResourceId] IS Null
我得到了10681的结果。 如果我运行此查询:
SELECT A.[ResourceId]
FROM PTU_NICE_Coll.[dbo].[tbl_Content] As A
left join PTU_NICE_Coll.[dbo].tbl_FileReference As B on A.ResourceId=B.ResourceId
where B.[ResourceId] IS Null
我得到了10896的结果。
如何删除此行?移除它们是否完全安全?
答案 0 :(得分:0)
通常我们不建议直接对DB执行操作,因为它可能会导致问题。
但是,如果必须这样做,则需要先备份数据库。
您可以参考以下文章来清理和减少TFS数据库的大小:
另一种选择是深入数据库,并运行清理 手动存储过程。如果您的内容表很大:
EXEC prc_DeleteUnusedContent 1
如果您的文件表很大:
EXEC prc_DeleteUnusedFiles 1, 0, 1000
这第二个sproc可能会运行很长时间,这就是为什么它有第三个 定义批量大小的参数。你应该运行这个sprocs 多次,或者如果它快速完成,你可以增加块 大小