рдХреЗ рддрдкрд╛рдЗрдБрд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рдХрдиреНрдлреНрд▓реБрдПрдиреНрд╕ рд╕рд░реНрднрд░рдорд╛ рд╕реНрдкреЗрд╕ рд╕рдорд╛рдкреНрдд рднрдПрдХреЛ рдЫ, рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХрд╕рд▓реЗ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рд╕рдВрд▓рдЧреНрдирд╣рд░реВ рдЕрдкрд▓реЛрдб рдЧрд░реНрджрдЫ?
рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ PostgreSQL рд╕рдВрдЧрдо рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдкрд╣реБрдБрдЪ рдЪрд╛рд╣рд┐рдиреНрдЫред
PostgreSQL рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡рд┐рд░реБрджреНрдз SQL рдХреНрд╡реЗрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВрд▓реЗ 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;
рдЖрдЙрдЯрдкреБрдЯ (рд╕реНрдкреЗрд╕ рдирд╛рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди):
рд╕рдмреИ рднрдиреНрджрд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╕рдВрдпреБрдХреНрдд рд░реВрдкрдорд╛ рдкреГрд╖реНрдард╣рд░реВ:
SELECT title,
MAX(VERSION)
FROM content
WHERE contenttype = 'PAGE'
GROUP BY title
ORDER BY 2 DESC
LIMIT 5;
рдирд┐рд╖реНрдХрд░реНрд╖:
рддрдкрд╛рдИрдВрдХреЛ рдХрдиреНрдлреНрд▓реБрдПрдиреНрд╕ рдЙрджрд╛рд╣рд░рдгрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рд╕рдВрд▓рдЧреНрди рдлрд╛рдЗрд▓рд╣рд░реВ
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;
рдирд┐рд╖реНрдХрд░реНрд╖:
рдЯреЛрдХрд░реАрдорд╛ рдкреГрд╖реНрдард╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рдкреНрд░рддрд┐ рдард╛рдЙрдБ рдЯреЛрдХрд░реАрдорд╛ рдкреГрд╖реНрдард╣рд░реВрдХреЛ рдХреБрд▓ рдЖрдХрд╛рд░:
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;
рдирд┐рд╖реНрдХрд░реНрд╖:
рд╕рдмреИ рдкреГрд╖реНрдард╣рд░реВрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХрд╛ рд╕рдВрд▓рдЧреНрдирдХрд╣рд░реВрдХреЛ рдХреБрд▓ рдЖрдХрд╛рд░
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;
рдирд┐рд╖реНрдХрд░реНрд╖:
PS Confluence рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА SQL рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдкреВрд░рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕реНрд░реЛрдд: www.habr.com