เช•เชจเซเชซเซเชฒเซเช…เชจเซเชธ เชธเชฐเซเชตเชฐ เชชเชฐเชจเซ€ เชœเช—เซเชฏเชพ เช•เซเชฏเชพเช‚ เช—เชˆ? เช…เชฅเชตเชพ เชœเซ‹เชกเชพเชฃเซ‹ เชชเชฐ เชธเช‚เช—เชฎ เช†เช‚เช•เชกเชพ

เชถเซเช‚ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เชคเชฎเชพเชฐเชพ เช•เชจเซเชซเซเชฒเซเช…เชจเซเชธ เชธเชฐเซเชตเชฐ เชชเชฐ เชœเช—เซเชฏเชพ เชธเชฎเชพเชชเซเชค เชฅเชˆ เช—เชˆ เช›เซ‡, เช…เชจเซ‡ เชคเชฎเซ‡ เชœเชพเชฃเชคเชพ เชจเชฅเซ€ เช•เซ‡ เช•เซ‹เชฃ เชธเซŒเชฅเซ€ เชตเชงเซ เชœเซ‹เชกเชพเชฃเซ‹ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‡ เช›เซ‡?

เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ 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 เชธเช‚เช—เชฎ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ SQL เชชเซเชฐเชถเซเชจเซ‹ เชธเชพเชฅเซ‡ เชชเซ‹เชธเซเชŸเชจเซ‡ เชชเซ‚เชฐเช• เชฌเชจเชพเชตเซ‹

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹