Shayki Abramczyk
Shayki Abramczyk

Reputation: 41775

Is it safe to reduce TFS DB size by using Delete stored procedures?

We have TFS 2017.3 and the database it's huge - about 1.6 TB.

I want to try to clean up the space by running these 2 stored procedures:

Is it safe to run it? Is there a chance that it will delete important things I am currently using? (of course, I will do a backup before...)

What are the best values to put in these stored procedures?

Another thing - If I run this query:

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

I got result of 10681. If I run this query:

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

I got result of 10896.

How can I remove this rows? and is it completely safe to remove them?

Upvotes: 3

Views: 4459

Answers (1)

Andy Li-MSFT
Andy Li-MSFT

Reputation: 30432

Generally we don't recommend to do actions against the DB directly as it may cause problems.

However if you have to do that, then you need to backup the DBs first.

You can refer to below articles to clean up and reduce the size of the TFS databases:

Another option is to dive deep into the database, and run the cleanup stored procedures manually. If your Content table is large:

EXEC prc_DeleteUnusedContent 1

If your Files table is large:

EXEC prc_DeleteUnusedFiles 1, 0, 1000

This second sproc may run for a long time, that’s why it has the third parameter which defines the batch size. You should run this sprocs multiple times, or if it completes quickly, you can increase the chunk size.

Upvotes: 4

Related Questions