Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 00:24
Ik twijfel of dit topic hier het beste tot z'n recht komt of toch in PRG, maar toch maar hier.

Wij draaien al een aantal jaar met een klein ontwikkelteam op TFS Express (eerst 2012, daarna geupgrade naar 2015, nu 2017). Nu liepen we gisteren tegen het problem aan dat de database vol zat (10GB beperking van Sql Express). Op een of andere manier is er nu weer 250MB vrij dus we kunnen weer iets, maar het is geen comfortabele situatie. Ik ben dus een en ander aan het uitzoeken geweest om uit te zoeken waar dit dan in zit, en vond wat queries op internet die wat inzicht bieden.

Stap 1:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SELECT Owner = 
CASE
WHEN OwnerId = 0 THEN 'Generic' 
WHEN OwnerId = 1 THEN 'VersionControl'
WHEN OwnerId = 2 THEN 'WorkItemTracking'
WHEN OwnerId = 3 THEN 'TeamBuild'
WHEN OwnerId = 4 THEN 'TeamTest'
WHEN OwnerId = 5 THEN 'Servicing'
WHEN OwnerId = 6 THEN 'UnitTest'
WHEN OwnerId = 7 THEN 'WebAccess'
WHEN OwnerId = 8 THEN 'ProcessTemplate'
WHEN OwnerId = 9 THEN 'StrongBox'
WHEN OwnerId = 10 THEN 'FileContainer'
WHEN OwnerId = 11 THEN 'CodeSense'
WHEN OwnerId = 12 THEN 'Profile'
WHEN OwnerId = 13 THEN 'Aad'
WHEN OwnerId = 14 THEN 'Gallery'
WHEN OwnerId = 15 THEN 'BlobStore'
WHEN OwnerId = 255 THEN 'PendingDeletion'
END,
SUM(CompressedLength) / 1024.0 / 1024.0 AS BlobSizeInMB
FROM tbl_FileReference AS r
JOIN tbl_FileMetadata AS m
ON r.ResourceId = m.ResourceId
AND r.PartitionId = m.PartitionId
WHERE r.PartitionId = 1
GROUP BY OwnerId
ORDER BY 2 DESC


code:
1
2
3
4
5
6
7
8
Owner   BlobSizeInMB
FileContainer   6398.704974173828
VersionControl  1629.860169410156
TeamTest    128.986527442382
CodeSense   19.872520446289
ProcessTemplate 8.653362273437
Generic 7.758193015625
WorkItemTracking    2.085576056640


Ruim 6GB in de "FileContainer" dus.

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT CASE WHEN Container = 'vstfs:///Buil' THEN 'Build'
WHEN Container = 'vstfs:///Git/' THEN 'Git'
WHEN Container = 'vstfs:///Dist' THEN 'DistributedTask'
ELSE Container 
END AS FileContainerOwner,
SUM(fm.CompressedLength) / 1024.0 / 1024.0 AS TotalSizeInMB
FROM (SELECT DISTINCT LEFT(c.ArtifactUri, 13) AS Container,
fr.ResourceId,
ci.PartitionId
FROM tbl_Container c
INNER JOIN tbl_ContainerItem ci
ON c.ContainerId = ci.ContainerId
AND c.PartitionId = ci.PartitionId
INNER JOIN tbl_FileReference fr
ON ci.fileId = fr.fileId
AND ci.DataspaceId = fr.DataspaceId
AND ci.PartitionId = fr.PartitionId) c
INNER JOIN tbl_FileMetadata fm
ON fm.ResourceId = c.ResourceId
AND fm.PartitionId = c.PartitionId
GROUP BY c.Container
ORDER BY TotalSizeInMB DESC

code:
1
2
3
4
FileContainerOwner  TotalSizeInMB
Build   6355.591111182617
DistributedTask 21.820400237304
vstfs:///Rele   19.101548194335

En ruim 6GB met als owner "Build".
Nu zijn onze builds absoluut niet spannend, het zijn voornamelijk web projectjes en de retentie staat overal gewoon op de default settings van TFS.

Wat heb ik verder geprobeerd:
-Er stond 1 groot web project in TFS van rond de 3GB. Deze heb ik verwijderd met tf destroy /startcleanup. Ik had verwacht hierna meteen 3GB vrij te hebben, maar het leverde bijna niets op.
-Ik heb de volgende stored procedures uitgevoerd die TFS op zouden moeten ruimen:
SQL:
1
2
3
exec prc_DeleteUnusedContent 1
exec prc_CleanupDeletedFileContent 1
exec prc_DeleteUnusedFiles 1,  0, 10000

Wederom geen enkel effect.

Mijn vragen:
-Heeft iemand een idee hoe ik nog kan inzoomen op de owner "Build", zodat ik bijvoorbeeld een overzicht heb per project?
-Waarom heb ik die 3GB niet terug gekregen?
-Hoe krijg ik TFS aan het opruimen?

Ik snap dat een TFS licentie dit ook op zou lossen, maar daar zijn we simpelweg te klein voor om dat rendabel te maken (en TFS Express zou met ons kleine team makkelijk moeten kunnen).

Roomba E5 te koop