เด•เตบเดซเตเดฒเต‚เดฏเตปเดธเต เดธเต†เตผเดตเดฑเดฟเดฒเต† เด‡เดŸเด‚ เดŽเดตเดฟเดŸเต† เดชเต‹เดฏเดฟ? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดฑเตเดฑเดพเดšเตเดšเตโ€Œเดฎเต†เดจเตเดฑเตเด•เดณเดฟเดฒเต† เด•เตบเดซเตเดฒเต‚เตปเดธเต เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ

เดจเดฟเด™เตเด™เดณเตเดŸเต† Confluence เดธเต†เตผเดตเดฑเดฟเตฝ เดŽเดชเตเดชเต‹เดดเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเตเดฅเดฒเด‚ เดคเต€เตผเดจเตเดจเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹, เด†เดฐเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เด•เต‚เดŸเตเดคเตฝ เด…เดฑเตเดฑเดพเดšเตเดšเตโ€Œเดฎเต†เดจเตเดฑเตเด•เตพ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒเต‡?

เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต PostgreSQL เดธเด‚เด—เดฎ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตเดธเดธเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด’เดฐเต PostgreSQL เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเต†เดคเดฟเดฐเต† เด’เดฐเต SQL เด…เดจเตเดตเต‡เดทเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเด‚เด—เดฎเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚.

เดธเด‚เด—เดฎเดคเตเดคเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เด…เดฑเตเดฑเดพเดšเตเดšเตโ€Œเดฎเต†เดจเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด†เด•เต† เดตเดฒเตเดชเตเดชเด‚:

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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•