5/5 - (1 vote)
Have you ever run out of space on your Confluence server, but you don’t know who is downloading the most attachments?
To find out, you need access to the PostgreSQL confluence database.
Using SQL query to PostgreSQL database, you can find useful statistics on Confluence.
Total size of all attachments in Confluence:
SELECT s.spaceid, s.spacename, sum (LONGVAL) FROM contentproperties c JOIN content co ON c.contentid = co.contentid JOIN spaces s ON co.spaceid = s.spaceid WHERE c.contentid IN (SELECT contentid FROM content WHERE contenttype = 'ATTACHMENT') AND c.propertyname = 'FILESIZE' GROUP BY s.spaceid ORDER BY SUM DESC LIMIT 5;
Output (spacename replaced):
Pages with most historical versions in conjunction:
SELECT title, MAX (VERSION) FROM content WHERE contenttype = 'PAGE' GROUP BY title ORDER BY 2 DESC LIMIT 5;
Output:
The largest attachment files in your Confluence instance
SELECT DISTINCT c.contentid, c.title AS attachmentTitle, u.username AS uploadedBy, co.title AS pageTitle, cn.longval AS bytes FROM CONTENT AS c JOIN USER_MAPPING AS u ON u.user_key = c.creator JOIN CONTENT AS co ON c.pageid = co.contentid JOIN CONTENTPROPERTIES AS cn ON cn.contentid = c.contentid WHERE c.contenttype = 'ATTACHMENT' AND cn.longval IS NOT NULL ORDER BY cn.longval DESC LIMIT 5;
Output:
The number of pages in the basket and the total size of pages in the basket per space:
SELECT Count (content.contentid) AS number_of_trashed_pages, Pg_size_pretty (SUM (Pg_column_size (bodycontent.BODY))) AS trash_total_size, spaces.spacename AS space_name FROM bodycontent INNER JOIN content ON (content.contentid = bodycontent.contentid) INNER JOIN spaces ON (content.spaceid = spaces.spaceid) WHERE bodycontent.contentid IN (SELECT contentid FROM content WHERE content_status = 'deleted' AND contenttype = 'PAGE') GROUP BY space_name ORDER BY trash_total_size LIMIT 5;
Output:
Total size of attachments downloaded by each user on all pages
SELECT u.lower_username, sum (cp.longval) AS "size" FROM content c1 JOIN content c2 ON c1.contentid = c2.pageid JOIN user_mapping u ON c1.creator = u.user_key JOIN contentproperties cp ON c2.contentid = cp.contentid WHERE c2.contenttype = 'ATTACHMENT' GROUP BY u.lower_username ORDER BY sum (cp.longval) DESC LIMIT 5;
Output: