เจ•เจจเจซเจฒเฉ‚เจเจ‚เจธ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจธเจชเฉ‡เจธ เจ•เจฟเฉฑเจฅเฉ‡ เจ—เจˆ? เจœเจพเจ‚ เจ…เจŸเฉˆเจšเจฎเฉˆเจ‚เจŸเจพเจ‚ 'เจคเฉ‡ เจธเฉฐเจ—เจฎ เจฆเฉ‡ เจ…เฉฐเจ•เฉœเฉ‡

เจ•เฉ€ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจซเจฒเฉ‚เจเจ‚เจธ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจธเจชเฉ‡เจธ เจ–เจคเจฎ เจนเฉ‹ เจ—เจˆ เจนเฉˆ, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจ•เจฟ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจ…เจŸเฉˆเจšเจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉŒเจฃ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเฉˆ?

เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ 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 Confluence เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เฉ€ SQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจชเฉ‹เจธเจŸ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจ• เจ•เจฐเฉ‹

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹