PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€ เชฆเซเชตเชพเชฐเชพ 2015 เชจเชพ เช…เชนเซ‡เชตเชพเชฒเชจเซเช‚ เชŸเซเชฐเชพเชจเซเชธเช•เซเชฐเชฟเชชเซเชถเชจ "เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพ เชกเชพเช‡เชต"

เช…เชนเซ‡เชตเชพเชฒเชจเชพ เชฒเซ‡เช–เช• เชคเชฐเชซเชฅเซ€ เช…เชธเซเชตเซ€เช•เชฐเชฃ: เชนเซเช‚ เชจเซ‹เช‚เชงเซเช‚ เช›เซเช‚ เช•เซ‡ เช† เช…เชนเซ‡เชตเชพเชฒ เชจเชตเซ‡เชฎเซเชฌเชฐ 2015 เชจเซ‹ เช›เซ‡ - 4 เชตเชฐเซเชทเชฅเซ€ เชตเชงเซ เชธเชฎเชฏ เชตเซ€เชคเซ€ เช—เชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ เช˜เชฃเซ‹ เชธเชฎเชฏ เชตเซ€เชคเซ€ เช—เชฏเซ‹ เช›เซ‡. เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชšเชฐเซเชšเชพ เช•เชฐเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃ 9.4 เชนเชตเซ‡ เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ€. เช›เซ‡เชฒเซเชฒเชพ 4 เชตเชฐเซเชทเซ‹เชฎเชพเช‚, 5 เชจเชตเชพ เชชเซเชฐเช•เชพเชถเชจเซ‹ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เช‚เช•เชกเชพ เชธเช‚เชฌเช‚เชงเชฟเชค เช˜เชฃเซ€ เชจเชตเซ€เชจเชคเชพเช“, เชธเซเชงเชพเชฐเชพเช“ เช…เชจเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฆเซ‡เช–เชพเชฏเชพ เช›เซ‡, เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชธเชพเชฎเช—เซเชฐเซ€ เชœเซ‚เชจเซ€ เช›เซ‡ เช…เชจเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชจเชฅเซ€. เชœเซ‡เชฎ เชœเซ‡เชฎ เชฎเซ‡เช‚ เชธเชฎเซ€เช•เซเชทเชพ เช•เชฐเซ€, เชฎเซ‡เช‚ เช† เชธเซเชฅเชพเชจเซ‹เชจเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชคเชฎเชจเซ‡ เชตเชพเชšเช•เชจเซ‡ เช—เซ‡เชฐเชฎเชพเชฐเซเช—เซ‡ เชฆเซ‹เชฐเชตเชพเชฎเชพเช‚ เชจ เช†เชตเซ‡. เชฎเซ‡เช‚ เช† เชธเซเชฅเชพเชจเซ‹เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เซเชฏเชพ เชจเชฅเซ€, เชคเซ‡เชฎเชพเช‚ เช˜เชฃเชพ เชฌเชงเชพ เช›เซ‡, เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชเช• เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฒเช— เช…เชนเซ‡เชตเชพเชฒ เชฌเชนเชพเชฐ เช†เชตเชถเซ‡.

PostgreSQL DBMS เช เชเช• เชตเชฟเชถเชพเชณ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช›เซ‡, เช…เชจเซ‡ เช† เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชฎเชพเช‚ เช˜เชฃเซ€ เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชจเซเช‚ เชธเช‚เช•เชฒเชฟเชค เช•เชพเชฐเซเชฏ DBMS เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชธเซ€เชงเซ€ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡. เช“เชชเชฐเซ‡เชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช˜เชŸเช•เซ‹เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชตเชฟเชถเซ‡ เช†เช‚เช•เชกเชพ เช…เชจเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ PostgreSQL เชจเซ€ เช…เชธเชฐเช•เชพเชฐเช•เชคเชพเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช†เชฎเชพเช‚ เช˜เชฃเซ€ เชฌเชงเซ€ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชเช•เชฆเชฎ เชธเชฐเชณ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช† เชฎเชพเชนเชฟเชคเซ€เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชฐเชตเซเช‚ เช เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฌเชฟเชจ-เชคเซเชšเซเช› เช•เชพเชฐเซเชฏ เช›เซ‡, เช…เชจเซ‡ เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“เชจเซเช‚ "เชเซ‚" เช…เชฆเซเชฏเชคเชจ DBA เชจเซ‡ เชชเชฃ เชธเชฐเชณเชคเชพเชฅเซ€ เช—เซ‚เช‚เชšเชตเซ€ เชถเช•เซ‡ เช›เซ‡.
PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€


เชถเซเชญ เชฌเชชเซ‹เชฐ เชฎเชพเชฐเซเช‚ เชจเชพเชฎ เชเชฒเซ‡เช•เซเชธเซ€ เช›เซ‡. เช‡เชฒเซเชฏเชพเช เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชนเซเช‚ PostgreSQL เช†เช‚เช•เชกเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถ.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

PostgreSQL เชชเซเชฐเชตเซƒเชคเซเชคเชฟเชจเชพ เช†เช‚เช•เชกเชพ. PostgreSQL เชชเชพเชธเซ‡ เชฌเซ‡ เช†เช‚เช•เชกเชพ เช›เซ‡. เชชเซเชฐเชตเซƒเชคเซเชคเชฟเชจเชพ เช†เช‚เช•เชกเชพ, เชœเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชตเชฟเชคเชฐเชฃ เชตเชฟเชถเซ‡ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เช†เช‚เช•เชกเชพ. เชนเซเช‚ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ PostgreSQL เชชเซเชฐเชตเซƒเชคเซเชคเชฟเชจเชพ เช†เช‚เช•เชกเชพเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถ, เชœเซ‡ เช…เชฎเชจเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เช…เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชนเซเช‚ เชคเชฎเชจเซ‡ เช•เชนเซ€เชถ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชฅเชตเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เชคเซ‡เชตเซ€ เชตเชฟเชตเชฟเชง เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช…เชธเชฐเช•เชพเชฐเช• เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชฐเชฟเชชเซ‹เชฐเซเชŸเชฎเชพเช‚ เชถเซเช‚ เชจเชนเซ€เช‚ เชนเซ‹เชฏ? เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚, เชนเซเช‚ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเชพ เช†เช‚เช•เชกเชพเช“เชจเซ‡ เชธเซเชชเชฐเซเชถ เช•เชฐเซ€เชถ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡. เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชกเซ‡เชŸเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เช•เซเชตเซ‡เชฐเซ€ เชชเซเชฒเชพเชจเชฐเชจเซ‡ เช† เชกเซ‡เชŸเชพเชจเซ€ เช—เซเชฃเชพเชคเซเชฎเช• เช…เชจเซ‡ เชœเชฅเซเชฅเชพเชคเซเชฎเช• เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ เชตเชฟเชถเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช–เซเชฏเชพเชฒ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชเช• เช…เชฒเช— เชฐเชฟเชชเซ‹เชฐเซเชŸ เชฎเชพเชŸเซ‡ เช† เชเช• เช…เชฒเช— เชตเชฟเชทเชฏ เช›เซ‡.

เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชธเชพเชงเชจ เชธเชฎเซ€เช•เซเชทเชพเช“ เชนเชถเซ‡ เชจเชนเซ€เช‚, เชนเซเช‚ เชเช• เช‰เชคเซเชชเชพเชฆเชจเชจเซ€ เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เชคเซเชฒเชจเชพ เช•เชฐเซ€เชถ เชจเชนเซ€เช‚. เช•เซ‹เชˆ เชœเชพเชนเซ‡เชฐเชพเชค เชนเชถเซ‡ เชจเชนเซ€เช‚. เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เชกเซเชฐเซ‹เชช เช•เชฐเซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชนเซเช‚ เชคเชฎเชจเซ‡ เชฌเชคเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡. เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชจเชฟเชฐเซเชญเชฏเชคเชพเชฅเซ€ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เช…เชฎเชจเซ‡ เชซเช•เซเชค เชธเชพเชฆเชพ SQL เช…เชจเซ‡ SQL เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชœเซเชžเชพเชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช…เชจเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฏเชพ เช†เช‚เช•เชกเชพ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชคเซ‡ เชตเชฟเชถเซ‡ เช…เชฎเซ‡ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชœเซ‹ เช†เชชเชฃเซ‡ PostgreSQL เชจเซ‡ เชœเซ‹เชˆเช เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ€เช, เชคเซ‹ เช†เชชเชฃเชจเซ‡ "เชฌเซเชฒเซ‡เช• เชฌเซ‹เช•เซเชธ" เชฆเซ‡เช–เชพเชถเซ‡. เช…เชฎเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชœเซ‹เชˆเชถเซเช‚ เชœเซ‡ เช•เช‚เชˆเช• เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เช†เชชเชฃเซ‡ เชฒเช—เชญเช— เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡เช“ เชคเซเชฏเชพเช‚ เชถเซเช‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡, เชคเซ‡เช“ เชถเซเช‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡. เชชเชฐเช‚เชคเซ, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช† เชเช• เชฌเซเชฒเซ‡เช• เชฌเซ‹เช•เซเชธ เช›เซ‡, เช†เชชเชฃเซ‡ เช…เช‚เชฆเชฐ เชœเซ‹เชˆ เชถเช•เชคเชพ เชจเชฅเซ€.

เช…เชฎเซ‡ CPU เชฒเซ‹เชกเชจเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช top, เช…เชฎเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชธเชฟเชธเซเชŸเชฎ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เช เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชฎเชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ PostgreSQL เชจเซ€ เช…เช‚เชฆเชฐ เชœเซ‹เชˆ เชถเช•เซ€เชถเซเช‚ เชจเชนเซ€เช‚. เช† เชฎเชพเชŸเซ‡ เช†เชชเชฃเชจเซ‡ เช…เชจเซเชฏ เชธเชพเชงเชจเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช…เชจเซ‡ เช†เช—เชณ เชšเชพเชฒเซ เชฐเชพเช–เซ€เชจเซ‡, เชนเซเช‚ เชคเชฎเชจเซ‡ เช•เชนเซ€เชถ เช•เซ‡ เชธเชฎเชฏ เช•เซเชฏเชพเช‚ เชตเชฟเชคเชพเชตเซเชฏเซ‹ เช›เซ‡. เชœเซ‹ เช†เชชเชฃเซ‡ เช†เชตเซ€ เชธเซเช•เซ€เชฎเชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ PostgreSQLเชจเซเช‚ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช•เชฐเซ€เช, เชคเซ‹ เชธเชฎเชฏ เช•เซเชฏเชพเช‚ เชตเชฟเชคเชพเชตเซเชฏเซ‹ เชคเซ‡เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเชตเซ‹ เชถเช•เซเชฏ เชฌเชจเชถเซ‡. เช† เชฌเซ‡ เชฌเชพเชฌเชคเซ‹ เช›เซ‡: เชคเซ‡ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเซ‹เชฎเชพเช‚เชฅเซ€ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช…เชจเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เช•เชพเชฐเซเชฏเซ‹เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เชœเซ‡ PostgreSQL เชคเซ‡เชจเซ‡ เชšเชพเชฒเซ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เช†เชชเชฃเซ‡ เช‰เชชเชฐเชจเชพ เชกเชพเชฌเชพ เช–เซ‚เชฃเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€เช, เชคเซ‹ เช…เชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชฐเชœเซ€เชฎเชพเช‚เชฅเซ€ เชตเชฟเชจเช‚เชคเซ€ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เช—เชณเชจเชพ เช•เชพเชฎ เชฎเชพเชŸเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ เชธเชคเซเชฐ เช–เซ‹เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชตเชฟเชจเช‚เชคเซ€ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชชเซเชฒเชพเชจเชฐ เช•เซเชตเซ‡เชฐเซ€ เชชเซเชฒเชพเชจ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ เช…เชฎเชฒ เชฎเชพเชŸเซ‡ เช†เช—เชณ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เช•เซ‹เชทเซเชŸเช•เซ‹ เช…เชจเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเชพ เชฌเซเชฒเซ‹เช• I/O เชกเซ‡เชŸเชพ เช›เซ‡. เชœเชฐเซ‚เชฐเซ€ เชกเซ‡เชŸเชพ เชกเชฟเชธเซเช•เชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ "เชถเซ‡เชฐเซเชก เชฌเชซเชฐเซเชธ" เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชพเชคเชพ เชตเชฟเชถเชฟเชทเซเชŸ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เซเชตเซ‡เชฐเซ€ เชชเชฐเชฟเชฃเชพเชฎเซ‹, เชœเซ‹ เชคเซ‡ เช…เชชเชกเซ‡เชŸเซเชธ, เชกเชฟเชฒเซ€เชŸ เชนเซ‹เชฏ เชคเซ‹, WAL เชฎเชพเช‚ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชฎเชพเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เซ‡เชŸเชฒเซ€เช• เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเชพเชนเชฟเชคเซ€ เชฒเซ‹เช— เช…เชฅเชตเชพ เช†เช‚เช•เชกเชพ เช•เชฒเซ‡เช•เซเชŸเชฐเชฎเชพเช‚ เชœเชพเชฏ เช›เซ‡. เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชชเชพเช›เซเช‚ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡ เชชเช›เซ€, เช•เซเชฒเชพเชฏเช‚เชŸ เชจเชตเซ€ เชตเชฟเชจเช‚เชคเซ€ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชธเชพเชฅเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชถเซเช‚ เช›เซ‡? เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช˜เชฃเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช›เซ‡ เชœเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชšเชพเชฒเชคเซ€ เช…เชจเซ‡ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡. เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชชเชฃ เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡: เช† เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ, เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฐ, เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชธเช‚เชฌเช‚เชงเชฟเชค เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“, เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชฒเซ‡เช–เช• เช›เซ‡. เชœเซ‡เชฎ เชœเซ‡เชฎ เชนเซเช‚ เชœเชพเชฃ เช•เชฐเซเช‚ เช›เซเช‚ เชคเซ‡เชฎ เชนเซเช‚ เชคเซ‡เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช•เชจเซ‡ เชธเซเชชเชฐเซเชถ เช•เชฐเซ€เชถ.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช‚เช•เชกเชพ เชธเชพเชฅเซ‡ เชถเซเช‚ เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡?

  • เช˜เชฃเซ€ เชฌเชงเซ€ เชฎเชพเชนเชฟเชคเซ€. PostgreSQL 9.4 เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฎเชพเชนเชฟเชคเซ€ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ 109 เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชœเซ‹ เชกเซ‡เชŸเชพเชฌเซ‡เช เช˜เชฃเชพ เช•เซ‹เชทเซเชŸเช•เซ‹, เชธเซเช•เซ€เชฎเชพ, เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เช† เชคเชฎเชพเชฎ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹, เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ€ เช…เชจเซเชฐเซ‚เชช เชธเช‚เช–เซเชฏเชพ เชฆเซเชตเชพเชฐเชพ เช—เซเชฃเชพเช•เชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชฐเชนเซ‡เชถเซ‡. เชเชŸเชฒเซ‡ เช•เซ‡, เชคเซเชฏเชพเช‚ เชชเชฃ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชกเซ‚เชฌเชตเซเช‚ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡.
  • เช†เช—เชพเชฎเซ€ เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช†เช‚เช•เชกเชพ เช•เชพเช‰เชจเซเชŸเชฐเซเชธ เชฆเซเชตเชพเชฐเชพ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เช†เชชเชฃเซ‡ เช† เช†เช‚เช•เชกเชพเช“ เชชเชฐ เชจเชœเชฐ เช•เชฐเซ€เช, เชคเซ‹ เช†เชชเชฃเซ‡ เชธเชคเชค เชตเชงเชคเชพ เช•เชพเช‰เชจเซเชŸเชฐเซเชธ เชœเซ‹เชถเซเช‚. เช…เชจเซ‡ เชœเซ‹ เช†เช‚เช•เชกเชพ เชฐเซ€เชธเซ‡เชŸ เชฅเชฏเชพ เชชเช›เซ€ เช˜เชฃเซ‹ เชธเชฎเชฏ เชตเซ€เชคเซ€ เช—เชฏเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เช†เชชเชฃเซ‡ เช…เชฌเชœเซ‹ เชฎเซ‚เชฒเซเชฏเซ‹ เชœเซ‹เชถเซเช‚. เช…เชจเซ‡ เชคเซ‡เช“ เช…เชฎเชจเซ‡ เช•เชถเซเช‚ เช•เชนเซ‡เชคเชพ เชจเชฅเซ€.
  • เช•เซ‹เชˆ เชˆเชคเชฟเชนเชพเชธ เชจเชฅเซ€. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เซ‹เชˆ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชจเชฟเชทเซเชซเชณเชคเชพ เชนเซ‹เชฏ, 15-30 เชฎเชฟเชจเชฟเชŸ เชชเชนเซ‡เชฒเชพเช‚ เช•เช‚เชˆเช• เช˜เชŸเซ€ เช—เชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚ เช…เชจเซ‡ 15-30 เชฎเชฟเชจเชฟเชŸ เชชเชนเซ‡เชฒเชพเช‚ เชถเซเช‚ เชฅเชฏเซเช‚ เชคเซ‡ เชœเซ‹เชˆ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚. เช† เชธเชฎเชธเซเชฏเชพ เช›เซ‡.
  • PostgreSQL เชฎเชพเช‚ เชฌเชจเซ‡เชฒ เชŸเซ‚เชฒเชจเซ‹ เช…เชญเชพเชต เช เชเช• เชธเชฎเชธเซเชฏเชพ เช›เซ‡. เช•เชฐเซเชจเชฒ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เช•เซ‹เชˆเชชเชฃ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชคเชพ เชจเชฅเซ€. เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชเชตเซเช‚ เช•เช‚เชˆ เชจเชฅเซ€. เชคเซ‡เช“ เชฎเชพเชคเซเชฐ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช†เช‚เช•เชกเชพ เช†เชชเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹, เชคเซ‡เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‹, เชคเชฎเชพเชฐเซ‡ เชœเซ‡ เชœเซ‹เชˆเช เช›เซ‡, เชคเซ‡ เช•เชฐเซ‹.
  • PostgreSQL เชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ เช•เซ‹เชˆ เชธเชพเชงเชจ เชจ เชนเซ‹เชตเชพเชฅเซ€, เช† เชฌเซ€เชœเซ€ เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡. เชคเซƒเชคเซ€เชฏ เชชเช•เซเชท เชธเชพเชงเชจเซ‹ เช˜เชฃเชพเช‚. เชฆเชฐเซ‡เช• เช•เช‚เชชเชจเซ€ เช•เซ‡ เชœเซ‡เชจเซ€ เชชเชพเชธเซ‡ เชตเชงเซ เช•เซ‡ เช“เช›เชพ เชธเซ€เชงเชพ เชนเชพเชฅ เช›เซ‡ เชคเซ‡ เชชเซ‹เชคเชพเชจเซ‹ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฒเช–เชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡. เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชธเชฎเซเชฆเชพเชฏ เชชเชพเชธเซ‡ เช˜เชฃเชพ เชฌเชงเชพ เชธเชพเชงเชจเซ‹ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเชฎเซ‡ เช†เช‚เช•เชกเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชŸเซ‚เชฒเซเชธเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เชตเชฟเชถเซ‡เชทเชคเชพเช“ เช›เซ‡, เช…เชจเซเชฏ เชŸเซ‚เชฒเซเชธเชฎเชพเช‚ เช…เชจเซเชฏ เช•เซ‹เชˆ เชตเชฟเชถเซ‡เชทเชคเชพเช“ เชจเชฅเซ€, เช…เชฅเชตเชพ เช•เซ‡เชŸเชฒเซ€เช• เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เช›เซ‡. เช…เชจเซ‡ เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชŠเชญเซ€ เชฅเชพเชฏ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชฌเซ‡, เชคเซเชฐเชฃ เช…เชฅเชตเชพ เชšเชพเชฐ เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชเช•เชฌเซ€เชœเชพเชจเซ‡ เช“เชตเชฐเชฒเซ‡เชช เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เช•เชพเชฐเซเชฏเซ‹ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เช† เช–เซ‚เชฌ เชœ เช…เชชเซเชฐเชฟเชฏ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เชฎเชพเช‚เชฅเซ€ เชถเซเช‚ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡? เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชจ เชฐเชนเซ‡ เชคเซ‡ เชฎเชพเชŸเซ‡ เชธเซ€เชงเชพ เช†เช‚เช•เชกเชพ เชฒเซ‡เชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชฌเชจเชตเซเช‚ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡, เช…เชฅเชตเชพ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช† เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชจเซ‡ เชœเชพเชคเซ‡ เชธเซเชงเชพเชฐเซ‹: เชคเชฎเชพเชฐเซ‹ เชฒเชพเชญ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเซเชฏเซ‹ เช‰เชฎเซ‡เชฐเซ‹.

เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ SQL เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชœเซเชžเชพเชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ‹เช• เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ SQL เช•เซเชตเซ‡เชฐเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเชฟเชฒเซ‡เช•เซเชŸ, เชœเซ‹เช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช‚เช•เชกเชพ เช…เชฎเชจเซ‡ เช˜เชฃเซ€ เชตเชธเซเชคเซเช“ เช•เชนเซ‡ เช›เซ‡. เชคเซ‡เช“เชจเซ‡ เชถเซเชฐเซ‡เชฃเซ€เช“เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

  • เชชเซเชฐเชฅเชฎ เชถเซเชฐเซ‡เชฃเซ€ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฅเชคเซ€ เช˜เชŸเชจเชพเช“ เช›เซ‡. เช† เชคเซเชฏเชพเชฐเซ‡ เชฅเชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เช˜เชŸเชจเชพเช“ เชฅเชพเชฏ เช›เซ‡: เช•เซเชตเซ‡เชฐเซ€, เชŸเซ‡เชฌเชฒ เชเช•เซเชธเซ‡เชธ, เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ, เช•เชฎเชฟเชŸ, เชคเซ‹ เช† เชฌเชงเซ€ เช˜เชŸเชจเชพเช“ เช›เซ‡. เช† เช˜เชŸเชจเชพเช“เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช•เชพเช‰เชจเซเชŸเชฐเซเชธเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช…เชจเซ‡ เช…เชฎเซ‡ เช† เช˜เชŸเชจเชพเช“เชจเซ‡ เชŸเซเชฐเซ‡เช• เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.
  • เชฌเซ€เชœเซ€ เชถเซเชฐเซ‡เชฃเซ€ เช•เซ‹เชทเซเชŸเช•เซ‹, เชกเซ‡เชŸเชพเชฌเซ‡เช เชœเซ‡เชตเชพ เชชเชฆเชพเชฐเซเชฅเซ‹เชจเชพ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เช›เซ‡. เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เช›เซ‡. เช† เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซเช‚ เช•เชฆ เช›เซ‡. เช…เชฎเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซ€ เชตเซƒเชฆเซเชงเชฟ, เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ€ เชตเซƒเชฆเซเชงเชฟเชจเซ‡ เชŸเซเชฐเซ‡เช• เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช†เชชเชฃเซ‡ เช—เชคเชฟเชถเซ€เชฒเชคเชพเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช.
  • เช…เชจเซ‡ เชคเซเชฐเซ€เชœเซ€ เชถเซเชฐเซ‡เชฃเซ€ เช เช˜เชŸเชจเชพ เชชเชฐ เชตเชฟเชคเชพเชตเซ‡เชฒเซ‹ เชธเชฎเชฏ เช›เซ‡. เชตเชฟเชจเช‚เชคเซ€ เชเช• เช˜เชŸเชจเชพ เช›เซ‡. เชคเซ‡เชจเซ€ เช…เชตเชงเชฟเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เชฎเชพเชช เช›เซ‡. เช…เชนเซ€เช‚เชฅเซ€ เชถเชฐเซ‚, เช…เชนเซ€เช‚ เชธเชฎเชพเชชเซเชค. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชŸเซเชฐเซ‡เช• เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช•เซเชฏเชพเช‚ เชคเซ‹ เชกเชฟเชธเซเช•เชฎเชพเช‚เชฅเซ€ เชฌเซเชฒเซ‹เช• เชตเชพเช‚เชšเชตเชพเชจเซ‹ เชธเชฎเชฏ เช…เชฅเชตเชพ เชฒเซ‡เช–เชจ. เช† เชตเชธเซเชคเซเช“ เชชเชฐ เชชเชฃ เชจเชœเชฐ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช‚เช•เชกเชพเช“เชจเชพ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:

  • เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ (เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชฌเชซเชฐเซเชธ) เชคเซเชฏเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เชกเซ‡เชŸเชพ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ เช›เซ‡, เชคเซเชฏเชพเช‚ เชเชตเชพ เช•เชพเช‰เชจเซเชŸเชฐเซเชธ เชชเชฃ เช›เซ‡ เช•เซ‡ เชœเซ‡ เช…เชฎเซเช• เช˜เชŸเชจเชพเช“ เชฌเชจเซ‡ เชคเซเชฏเชพเชฐเซ‡ เช…เชฅเชตเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเชพ เชธเช‚เชšเชพเชฒเชจเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชทเชฃเซ‹ เชŠเชญเซ€ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชธเชคเชค เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เช† เชคเชฎเชพเชฎ เช•เชพเช‰เชจเซเชŸเชฐเซเชธ เชฏเซเชเชฐ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชจเชฅเซ€ เช…เชจเซ‡ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ เชฎเชพเชŸเซ‡ เชชเชฃ เช‰เชชเชฒเชฌเซเชง เชจเชฅเซ€. เช† เชจเชฟเชฎเซเชจ เชธเซเชคเชฐเชจเซ€ เชตเชธเซเชคเซเช“ เช›เซ‡. เชคเซ‡เชฎเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, PostgreSQL เช SQL เชซเช‚เช•เซเชถเชจเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡. เช…เชฎเซ‡ เช† เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเชธเช‚เชฆเช—เซ€เชจเซ€ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชจเซ‡ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชฎเซ‡เชŸเซเชฐเชฟเช• (เช…เชฅเชตเชพ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ‹ เชธเชฎเซ‚เชน) เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช.
  • เชœเซ‹ เช•เซ‡, เช† เชซเช‚เช•เซเชถเชจเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชนเช‚เชฎเซ‡เชถเชพ เช…เชจเซเช•เซ‚เชณ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชซเช‚เช•เซเชถเชจเซเชธ เชฆเซƒเชถเซเชฏเซ‹ (VIEWs) เชฎเชพเชŸเซ‡เชจเซ‹ เช†เชงเชพเชฐ เช›เซ‡. เช† เชตเชฐเซเชšเซเชฏเซเช…เชฒ เช•เซ‹เชทเซเชŸเช•เซ‹ เช›เซ‡ เชœเซ‡ เชšเซ‹เช•เซเช•เชธ เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช…เชฅเชตเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช‡เชตเซ‡เชจเซเชŸเซเชธเชจเชพ เช…เชฎเซเช• เชธเซ‡เชŸ เชชเชฐ เช†เช‚เช•เชกเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.
  • เช† เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชฆเซƒเชถเซเชฏเซ‹ (VIEWs) เช†เช‚เช•เชกเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชฎเซเช–เซเชฏ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช›เซ‡. เชคเซ‡เช“ เช•เซ‹เชˆเชชเชฃ เชตเชงเชพเชฐเชพเชจเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชตเชฟเชจเชพ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡, เชคเชฎเซ‡ เชคเชฐเชค เชœ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชคเซเชฏเชพเช‚เชฅเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฒเชˆ เชถเช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เชฏเซ‹เช—เชฆเชพเชจ เชชเชฃ เช›เซ‡. เชฏเซ‹เช—เชฆเชพเชจ เชธเชคเซเชคเชพเชตเชพเชฐ เช›เซ‡. เชคเชฎเซ‡ postgresql-contrib เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, postgresql94-contrib), เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชฎเซ‹เชกเซเชฏเซเชฒ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, PostgreSQL เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. (เชจเซ‰เซ…เชง. เชตเชฟเชคเชฐเชฃเชจเชพ เช†เชงเชพเชฐเซ‡, เชฏเซ‹เช—เชฆเชพเชจเชจเชพ เชคเชพเชœเซ‡เชคเชฐเชจเชพ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ เชฎเซเช–เซเชฏ เชชเซ‡เช•เซ‡เชœเชจเซ‹ เชญเชพเช— เช›เซ‡).
  • เช…เชจเซ‡ เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เชฏเซ‹เช—เชฆเชพเชจ เช›เซ‡. เชคเซ‡เช“ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค PostgreSQL เชตเชฟเชคเชฐเชฃ เชธเชพเชฅเซ‡ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฅเซ€. เชคเซ‡เช“ เช•เชพเช‚ เชคเซ‹ เช•เชฎเซเชชเชพเช‡เชฒ เช…เชฅเชตเชพ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเชพ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช. เช† เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เชฏเซ‹เช—เชฆเชพเชจเชจเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช เชถเซเช‚ เช•เชฐเซเชฏเซเช‚ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เช–เซ‚เชฌ เชœ เช…เชฒเช— เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช† เชธเซเชฒเชพเช‡เชก เชคเซ‡ เชฌเชงเชพ เชฆเซƒเชถเซเชฏเซ‹ (VIEWs) เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเซเชฏเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ PostgreSQL 9.4 เชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡. เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช, เชคเซ‡เชฎเชพเช‚เชจเชพ เช˜เชฃเชพ เชฌเชงเชพ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชชเชนเซ‡เชฒเซ€เชตเชพเชฐ เช…เชจเซเชญเชตเซ€ เชฐเชนเซเชฏเชพเช‚ เชนเซ‹เชต เชคเซ‹ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เชชเชกเชตเซเช‚ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชœเซ‹ เช•เซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ เช…เช—เชพเช‰เชจเซเช‚ เชšเชฟเชคเซเชฐ เชฒเชˆเช ะšะฐะบ ั‚ั€ะฐั‚ะธั‚ัั ะฒั€ะตะผั ะฝะฐ PostgreSQL เช…เชจเซ‡ เช† เชธเซ‚เชšเชฟ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค, เช…เชฎเชจเซ‡ เช† เชšเชฟเชคเซเชฐ เชฎเชณเซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• เชตเซเชฏเซ (VIEWs), เช…เชฅเชตเชพ เชฆเชฐเซ‡เช• เชซเช‚เช•เซเชถเชจ, เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ PostgreSQL เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชฏเซ‹เช—เซเชฏ เช†เช‚เช•เชกเชพ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช…เชฅเชตเชพ เชฌเซ€เชœเชพ เชนเซ‡เชคเซ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชจเซ‡ เช…เชฎเซ‡ เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เชธเช‚เชšเชพเชฒเชจ เชตเชฟเชถเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เซ‡เชŸเชฒเซ€เช• เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชœเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเชถเซเช‚ เชคเซ‡ เช›เซ‡ pg_stat_database. เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช, เช† เชเช• เชฐเชœเซ‚เช†เชค เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เช˜เชฃเซ€ เชฌเชงเซ€ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡. เชธเซŒเชฅเซ€ เชตเชงเซ เชตเซˆเชตเชฟเชงเซเชฏเชธเชญเชฐ เชฎเชพเชนเชฟเชคเซ€. เช…เชจเซ‡ เชคเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช†เชชเชฃเซ‡ เชถเซเช‚ เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเซเช‚ เช–เซ‚เชฌ เชœ เช‰เชชเชฏเซ‹เช—เซ€ เชœเซเชžเชพเชจ เช†เชชเซ‡ เช›เซ‡.

เช†เชชเชฃเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชถเซเช‚ เชฒเชˆ เชถเช•เซ€เช? เชšเชพเชฒเซ‹ เชธเซŒเชฅเซ€ เชธเชฐเชณ เชตเชธเซเชคเซเช“ เชธเชพเชฅเซ‡ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
sum(blks_hit)*100/sum(blks_hit+blks_read) as hit_ratio
from pg_stat_database;

เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชœเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เชคเซ‡ เช•เซ‡เชถ เชนเชฟเชŸ เชŸเช•เชพเชตเชพเชฐเซ€ เช›เซ‡. เช•เซ‡เชถ เชนเชฟเชŸ เชŸเช•เชพเชตเชพเชฐเซ€ เช เช‰เชชเชฏเซ‹เช—เซ€ เชฎเซ‡เชŸเซเชฐเชฟเช• เช›เซ‡. เชคเซ‡ เชคเชฎเชจเซ‡ เชถเซ‡เชฐเซเชก เชฌเชซเชฐเซเชธ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ‹ เชกเซ‡เชŸเชพ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชกเชฟเชธเซเช•เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ‹ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ‹ เช…เช‚เชฆเชพเชœ เช•เชพเชขเชตเชพ เชฆเซ‡ เช›เซ‡.

เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชœเซ‡เชŸเชฒเซ€ เชตเชงเซ เช•เซ‡เชถ เชนเชฟเชŸ เช›เซ‡, เชคเซ‡เชŸเชฒเซเช‚ เชธเชพเชฐเซเช‚. เช…เชฎเซ‡ เชŸเช•เชพเชตเชพเชฐเซ€ เชคเชฐเซ€เช•เซ‡ เช† เชฎเซ‡เชŸเซเชฐเชฟเช•เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€เช เช›เซ€เช. เช…เชจเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เช† เช•เซ‡เชถ เชนเชฟเชŸเชจเซ€ เชŸเช•เชพเชตเชพเชฐเซ€ 90% เชฅเซ€ เชตเชงเซ เช›เซ‡, เชคเซ‹ เช† เชธเชพเชฐเซเช‚ เช›เซ‡. เชœเซ‹ เชคเซ‡ 90% เชฅเซ€ เชจเซ€เชšเซ‡ เชœเชพเชฏ เช›เซ‡, เชคเซ‹ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชกเซ‡เชŸเชพเชจเชพ เชนเซ‹เชŸ เชนเซ‡เชกเชจเซ‡ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เชฎเซ‡เชฎเชฐเซ€ เชจเชฅเซ€. เช…เชจเซ‡ เช† เชกเซ‡เชŸเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, PostgreSQL เชจเซ‡ เชกเชฟเชธเซเช•เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เชซเชฐเชœ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเซ‹ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เช•เชฐเชคเชพเช‚ เช† เชงเซ€เชฎเซเช‚ เช›เซ‡. เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชตเชงเชพเชฐเชตเชพ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡: เช•เชพเช‚ เชคเซ‹ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐ เชตเชงเชพเชฐเซ‹, เช…เชฅเชตเชพ เช†เชฏเชฐเซเชจ เชฎเซ‡เชฎเชฐเซ€ (RAM) เชตเชงเชพเชฐเซ‹.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
datname,
(xact_commit*100)/(xact_commit+xact_rollback) as c_ratio,
deadlocks, conflicts,
temp_file, pg_size_pretty(temp_bytes) as temp_size
from pg_stat_database;

เช† เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช‚เชฅเซ€ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชฒเชˆ เชถเช•เชพเชฏ? เชคเชฎเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฅเชคเซ€ เชตเชฟเชธเช‚เช—เชคเชคเชพเช“ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹. เช…เชนเซ€เช‚ เชถเซเช‚ เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡? เชคเซเชฏเชพเช‚ เช•เชฎเชฟเชŸ, เชฐเซ‹เชฒเชฌเซ‡เช•, เช•เชพเชฎเชšเชฒเชพเช‰ เชซเชพเชˆเชฒเซ‹เชจเซเช‚ เชธเชฐเซเชœเชจ, เชคเซ‡เชฎเชจเซเช‚ เช•เชฆ, เชกเซ‡เชกเชฒเซ‰เช•เซเชธ เช…เชจเซ‡ เชคเช•เชฐเชพเชฐ เช›เซ‡.

เช…เชฎเซ‡ เช† เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช† SQL เช–เซ‚เชฌ เชธเชฐเชณ เช›เซ‡. เช…เชจเซ‡ เช†เชชเชฃเซ‡ เช† เชกเซ‡เชŸเชพ เช†เชชเชฃเชพ เชฎเชพเชŸเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช…เชจเซ‡ เช…เชนเซ€เช‚ เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก เชฎเซ‚เชฒเซเชฏเซ‹ เช›เซ‡. เช…เชฎเซ‡ เช•เชฎเชฟเชŸ เช…เชจเซ‡ เชฐเซ‹เชฒเชฌเซ‡เช•เชจเซ‹ เช—เซเชฃเซ‹เชคเซเชคเชฐ เชœเซ‹เชˆเช เช›เซ€เช. เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ เช เชตเซเชฏเชตเชนเชพเชฐเชจเซ€ เชธเชซเชณ เชชเซเชทเซเชŸเชฟ เช›เซ‡. เชฐเซ‹เชฒเชฌเซ‡เช•เซเชธ เช เชฐเซ‹เชฒเชฌเซ‡เช• เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจเซ‡ เชฅเซ‹เชกเซเช‚ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚, เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชคเชพเชฃ เชจเชพเช–เซเชฏเซ‹, เช•เช‚เชˆเช• เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเซเช‚, เช…เชจเซ‡ เชชเช›เซ€ เชจเชฟเชทเซเชซเชณเชคเชพ เช†เชตเซ€, เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชเชŸเชฒเซ‡ เช•เซ‡ เชฐเซ‹เชฒเชฌเซ‡เช•เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเชคเชค เชตเชงเซ€ เชฐเชนเซ€ เช›เซ‡ เชคเซ‡ เช–เชฐเชพเชฌ เช›เซ‡. เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชคเซ‡เชฎเชจเซ‡ เชŸเชพเชณเชตเซเช‚ เชœเซ‹เชˆเช, เช…เชจเซ‡ เช•เซ‹เชกเชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹ เชœเซ‡เชฅเซ€ เช†เชตเซเช‚ เชจ เชฅเชพเชฏ.

เชตเชฟเชฐเซ‹เชงเชพเชญเชพเชธ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เช›เซ‡. เช…เชจเซ‡ เชคเซ‡เช“ เชชเชฃ เชŸเชพเชณเชตเชพ เชœเซ‹เชˆเช. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชตเซ‡เชฐเซ€เช เช›เซ‡ เชœเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชชเชฐ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเช•เชฐเชพเชฐ เชŠเชญเซ€ เชฅเชพเชฏ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เช† เชธเช‚เช˜เชฐเซเชทเซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชœเซ‹เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชตเชฟเช—เชคเซ‹ เชฒเซ‹เช—เชฎเชพเช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เชคเช•เชฐเชพเชฐ เช‰เช•เซ‡เชฒเซ‹ เชœเซ‡เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชตเชฟเชจเช‚เชคเซ€เช“ เชญเซ‚เชฒเซ‹ เชตเชฟเชจเชพ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡.

เชกเซ‡เชกเชฒเซ‹เช• เชชเชฃ เช–เชฐเชพเชฌ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเช‚เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡ เชธเซเชชเชฐเซเชงเชพ เช•เชฐเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชเช• เชตเชฟเชจเช‚เชคเซ€เช เชเช• เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซเชฏเซเช‚ เช…เชจเซ‡ เชฒเซ‰เช• เชฒเซ€เชงเซเช‚, เชฌเซ€เชœเซ€ เชตเชฟเชจเช‚เชคเซ€เช เชฌเซ€เชœเชพ เชธเช‚เชธเชพเชงเชจเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซเชฏเซเช‚ เช…เชจเซ‡ เชฒเซ‰เช• เชชเชฃ เชฒเซ€เชงเซเช‚, เช…เชจเซ‡ เชชเช›เซ€ เชฌเช‚เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เช เชเช•เชฌเซ€เชœเชพเชจเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซเชฏเชพ เช…เชจเซ‡ เชชเชพเชกเซ‹เชถเซ€ เชฆเซเชตเชพเชฐเชพ เชฒเซ‰เช• เช›เซ‹เชกเชตเชพเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชฎเชพเช‚ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเซเชฏเซ‹. เช† เชชเชฃ เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เช›เซ‡. เชคเซ‡เช“เชจเซ‡ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชจเชพ เชชเซเชจเชƒเชฒเซ‡เช–เชจ เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชเช•เซเชธเซ‡เชธเชจเซ‡ เชถเซเชฐเซ‡เชฃเซ€เชฌเชฆเซเชง เช•เชฐเชตเชพเชจเชพ เชธเซเชคเชฐเซ‡ เชธเช‚เชฌเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชกเซ‡เชกเชฒเซ‰เช•เซเชธ เชธเชคเชค เชตเชงเซ€ เชฐเชนเซ€ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชฒเซ‰เช—เชฎเชพเช‚ เชตเชฟเช—เชคเซ‹ เชœเซ‹เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‡ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชŠเชญเซ€ เชฅเชˆ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‹ เช…เชจเซ‡ เชœเซเช“ เช•เซ‡ เชธเชฎเชธเซเชฏเชพ เชถเซเช‚ เช›เซ‡.

เชŸเซ‡เชฎเซเชชเชฐเชฐเซ€ เชซเชพเช‡เชฒเซ‹ (เชŸเซ‡เชฎเซเชช_เชซเชพเช‡เชฒเซเชธ) เชชเชฃ เช–เชฐเชพเชฌ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เช“เชชเชฐเซ‡เชถเชจเชฒ, เช…เชธเซเชฅเชพเชฏเซ€ เชกเซ‡เชŸเชพเชจเซ‡ เชธเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เชฎเซ‡เชฎเชฐเซ€ เชนเซ‹เชคเซ€ เชจเชฅเซ€, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชกเชฟเชธเซเช• เชชเชฐ เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เช•เชพเชฎเชšเชฒเชพเช‰ เชฌเชซเชฐเชฎเชพเช‚ เชคเซ‡ เช•เชฐเซ€ เชถเช•เซ‡ เชคเซ‡ เชคเชฎเชพเชฎ เช•เชพเชฎเช—เซ€เชฐเซ€, เชคเซ‡ เชกเชฟเชธเซเช• เชชเชฐ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชงเซ€เชฎเซเช‚ เช›เซ‡. เช† เช•เซเชตเซ‡เชฐเซ€ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏเชจเซ‡ เชตเชงเชพเชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เช•เซ‡ เชœเซ‡เชฃเซ‡ PostgreSQL เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเซ€ เช›เซ‡ เชคเซ‡ เชฅเซ‹เชกเซ€ เชตเชพเชฐ เชชเช›เซ€ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡. เชœเซ‹ เช† เชฌเชงเซ€ เช•เซเชฐเชฟเชฏเชพเช“ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡, เชคเซ‹ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชตเชงเซ เชเชกเชชเชฅเซ€ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเชถเซ‡ เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เช“เช›เซ€ เชฐเชพเชน เชœเซ‹เชถเซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

pg_stat_bgwriter - เช† เชฆเซƒเชถเซเชฏ เชฌเซ‡ PostgreSQL เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เชธเช‚เชšเชพเชฒเชจเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡: checkpointer ะธ background writer.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฌเชฟเช‚เชฆเซเช“เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เช, เช•เชนเซ‡เชตเชพเชคเชพ. checkpoints. เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเซเชธ เชถเซเช‚ เช›เซ‡? เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เช เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชฎเชพเช‚ เชเช• เชธเซเชฅเชพเชจ เช›เซ‡ เชœเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชฒเซ‹เช—เชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชคเชฎเชพเชฎ เชกเซ‡เชŸเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชกเชฟเชธเซเช• เชชเชฐเชจเชพ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชธเชฎเชจเซเชตเชฏเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ, เชตเชฐเซเช•เชฒเซ‹เชก เช…เชจเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€เชจเซ‡, เชฒเชพเช‚เชฌเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชกเชฟเชธเซเช• เชชเชฐเชจเซ€ เชกเซ‡เชŸเชพ เชซเชพเช‡เชฒเซ‹ เชธเชพเชฅเซ‡ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚ เช—เช‚เชฆเชพ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชธเชฎเชจเซเชตเชฏเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เช† เชถเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช›เซ‡? เชœเซ‹ PostgreSQL เชฆเชฐเซ‡เช• เชธเชฎเชฏเซ‡ เชกเชฟเชธเซเช•เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชคเซเช‚ เชนเซ‹เชฏ เช…เชจเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพ เชฒเซ‡เชคเซเช‚ เชนเซ‹เชฏ เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชเช•เซเชธเซ‡เชธ เชชเชฐ เชกเซ‡เชŸเชพ เชฒเช–เชคเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชงเซ€เชฎเซเช‚ เชนเชถเซ‡. เชคเซ‡เชฅเซ€, PostgreSQL เชชเชพเชธเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ เช›เซ‡, เชœเซ‡เชจเซเช‚ เช•เชฆ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. Postgres เช†เช—เชณเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช…เชฅเชตเชพ เช•เซเชตเซ‡เชฐเซ€ เชฎเชพเชŸเซ‡ เช† เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เช“เชชเชฐเซ‡เชถเชจเชฒ เชกเซ‡เชŸเชพ เชซเชพเชณเชตเซ‡ เช›เซ‡. เชกเซ‡เชŸเชพ เชฌเชฆเชฒเชตเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡เช“ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เช…เชฎเชจเซ‡ เชกเซ‡เชŸเชพเชจเชพ เชฌเซ‡ เชตเชฐเซเชเชจ เชฎเชณเซ‡ เช›เซ‡. เชเช• เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เช›เซ‡, เชฌเซ€เชœเซ€ เชกเชฟเชธเซเช• เชชเชฐ เช›เซ‡. เช…เชจเซ‡ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เช† เชกเซ‡เชŸเชพเชจเซ‡ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชกเชฟเชธเซเช• เชธเชพเชฅเซ‡ เชธเชฎเชจเซเชตเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชœเซ‡ เชฌเชฆเชฒเชพเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชฎเชพเชŸเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชšเซ‡เช•เชชเซ‰เช‡เชจเซเชŸ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡, เช—เช‚เชฆเชพ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชชเช›เซ€ เชคเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚เชฅเซ€ เชฌเซ€เชœเซ‹ เชชเชพเชธ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชฎเชพเชŸเซ‡ เชšเชฟเชนเซเชจเชฟเชค เชฅเชฏเซ‡เชฒ เชชเซƒเชทเซเช เซ‹, เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชคเซ‡เชฎเชจเซ‡ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เช•เชฐเซ‡ เช›เซ‡. เช†เชฎ, เชกเซ‡เชŸเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชกเชฟเชธเซเช• เชธเชพเชฅเซ‡ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เชฅเชฏเซ‡เชฒ เช›เซ‡.

เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฌเชฟเช‚เชฆเซเช“ เชฌเซ‡ เชชเซเชฐเช•เชพเชฐเชจเชพ เชนเซ‹เชฏ เช›เซ‡. เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชชเชฐ เชเช• เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เช‰เชชเชฏเซ‹เช—เซ€ เช…เชจเซ‡ เชธเชพเชฐเซ€ เช›เซ‡ - checkpoint_timed. เช…เชจเซ‡ เชฎเชพเช‚เช— เชชเชฐ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเซเชธ เช›เซ‡ - checkpoint required. เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช–เซ‚เชฌ เชœ เชฎเซ‹เชŸเซ‹ เชกเซ‡เชŸเชพ เชฐเซ‡เช•เซ‹เชฐเซเชก เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เช†เชตเซ€ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชฅเชพเชฏ เช›เซ‡. เช…เชฎเซ‡ เช˜เชฃเชพ เชฌเชงเชพ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช— เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเซเชฏเชพ เช›เซ‡. เช…เชจเซ‡ PostgreSQL เชฎเชพเชจเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ‡ เช† เชฌเชงเซเช‚ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซ€ เชเชกเชชเชฅเซ€ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชเช• เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ เช†เช—เชณ เชตเชงเซ‹.

เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เช†เช‚เช•เชกเชพ เชชเชฐ เชจเชœเชฐ เชจเชพเช–เซ‹ pg_stat_bgwriter เช…เชจเซ‡ เชœเซเช“ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชถเซเช‚ เช›เซ‡ checkpoint_req checkpoint_timed เช•เชฐเชคเชพเช‚ เช˜เชฃเซเช‚ เชฎเซ‹เชŸเซเช‚ เช›เซ‡, เชคเซ‹ เช† เช–เชฐเชพเชฌ เช›เซ‡. เชถเชพ เชฎเชพเชŸเซ‡ เช–เชฐเชพเชฌ? เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒเชจเซ‡ เชกเชฟเชธเซเช• เชชเชฐ เชกเซ‡เชŸเชพ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชธเชคเชค เชคเชฃเชพเชตเชฎเชพเช‚ เชฐเชนเซ‡ เช›เซ‡. เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชฆเซเชตเชพเชฐเชพ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เช“เช›เซเช‚ เชคเชฃเชพเชตเชชเซ‚เชฐเซเชฃ เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เช†เช‚เชคเชฐเชฟเช• เชถเซ‡เชกเซเชฏเซ‚เชฒ เช…เชจเซเชธเชพเชฐ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡, เชœเซ‡เชฎ เช•เซ‡, เชธเชฎเชฏ เชœเชคเชพเช‚ เช–เซ‡เช‚เชšเชพเชฏ เช›เซ‡. PostgreSQL เชชเชพเชธเซ‡ เช•เชพเชฎเชฎเชพเช‚ เชฅเซ‹เชญเชตเชพเชจเซ€ เช…เชจเซ‡ เชกเชฟเชธเซเช• เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชคเชพเชฃ เชจ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช›เซ‡. เช† PostgreSQL เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡. เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เช•เซ‡ เชœเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชนเช•เซ€เช•เชคเชฅเซ€ เชคเชฃเชพเชต เช…เชจเซเชญเชตเชถเซ‡ เชจเชนเซ€เช‚ เช•เซ‡ เชกเชฟเชธเซเช• เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชตเซเชฏเชธเซเชค เช›เซ‡.

เช…เชจเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชจเซ‡ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซเชฐเชฃ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช›เซ‡:

  • ัheckpoint_segments.

  • ัheckpoint_timeout.

  • ัheckpoint_competion_target.

เชคเซ‡เช“ เชคเชฎเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฌเชฟเช‚เชฆเซเช“เชจเชพ เชธเช‚เชšเชพเชฒเชจเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชนเซเช‚ เชคเซ‡เชฎเชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเซ€เชถ เชจเชนเซ€เช‚. เชคเซ‡เชฎเชจเซ‹ เชชเซเชฐเชญเชพเชต เชเช• เช…เชฒเช— เชฎเซเชฆเซเชฆเซ‹ เช›เซ‡.

เชšเซ‡เชคเชตเชฃเซ€: เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃ 9.4 เชนเชตเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชจเชฅเซ€. PostgreSQL เชจเชพ เช†เชงเซเชจเชฟเช• เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚, เชชเชฐเชฟเชฎเชพเชฃ checkpoint_segments เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฆเซเชตเชพเชฐเชพ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ min_wal_size ะธ max_wal_size.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช—เชพเชฎเซ€ เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชฒเซ‡เช–เช• เช›เซ‡ โˆ’ background writer. เชคเซ‡ เชถเซ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡? เชคเซ‡ เช…เชจเช‚เชค เชฒเซ‚เชชเชฎเชพเช‚ เชธเชคเชค เชšเชพเชฒเซ‡ เช›เซ‡. เชคเซ‡ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒเชพ เชฌเชซเชฐเซเชธเชฎเชพเช‚ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชธเซเช•เซ‡เชจ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชกเชฟเชธเซเช• เชชเชฐ เชฎเชณเซ‡เชฒเชพ เช—เช‚เชฆเชพ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชซเซเชฒเชถ เช•เชฐเซ‡ เช›เซ‡. เช† เชฐเซ€เชคเซ‡, เชคเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฟเช‚เช— เชฆเชฐเชฎเชฟเชฏเชพเชจ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ‡ เช“เช›เซเช‚ เช•เชพเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

เชคเซ‡เชจเซ‡ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡? เชคเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚ เชธเซเชตเชšเซเช› เชชเซƒเชทเซเช เซ‹เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชชเซ‚เชฐเซ€ เชชเชพเชกเซ‡ เช›เซ‡ เชœเซ‹ เชคเซ‡เช“เชจเซ‡ เชกเซ‡เชŸเชพ เชธเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชšเชพเชจเช• (เชฎเซ‹เชŸเชพ เชœเชฅเซเชฅเชพเชฎเชพเช‚ เช…เชจเซ‡ เชคเชฐเชค เชœ) เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ. เชงเชพเชฐเซ‹ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชธเซเชตเชšเซเช› เชชเซƒเชทเซเช เซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช…เชจเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเชฎเชพเช‚ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชŠเชญเซ€ เชฅเชพเชฏ. เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ backend เชคเซ‡ เชซเช•เซเชค เชคเซ‡เชจเซ‡ เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฃเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เช•เช‚เชˆเชชเชฃ เชธเชพเชซ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชœเซ‹ เช…เชšเชพเชจเช• เช†เชตเชพ เช•เซ‹เชˆ เชชเซƒเชทเซเช เซ‹ เชจ เชนเซ‹เชฏ เชคเซ‹, เชฌเซ‡เช•เชเชจเซเชก เชฅเซ‹เชญเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชกเชฟเชธเซเช• เชชเชฐ เชซเซเชฒเชถ เช•เชฐเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชฎเชพเชŸเซ‡ เชฒเชˆ เชœเชตเชพ เชฎเชพเชŸเซ‡ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ - เชœเซ‡ เชนเชพเชฒเชฎเชพเช‚ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ€เช‚เช— เชตเชฟเชจเช‚เชคเซ€เชจเชพ เชธเชฎเชฏเชจเซ‡ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡ maxwritten_clean เชฎเซ‹เชŸเชพ, เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชฒเซ‡เช–เช• เชคเซ‡เชจเซเช‚ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เชจเชฅเซ€ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชตเชงเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ bgwriter_lru_maxpagesเชœเซ‡เชฅเซ€ เชคเซ‡ เชเช• เชšเช•เซเชฐเชฎเชพเช‚ เชตเชงเซ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡, เชตเชงเซ เชชเซƒเชทเซเช เซ‹ เชธเชพเชซ เช•เชฐเซ€ เชถเช•เซ‡.

เช…เชจเซ‡ เช…เชจเซเชฏ เช–เซ‚เชฌ เชœ เช‰เชชเชฏเซ‹เช—เซ€ เชธเซ‚เชšเช• เช›เซ‡ buffers_backend_fsync. เชฌเซ‡เช•เชเชจเซเชกเซเชธ fsync เช•เชฐเชคเชพ เชจเชฅเซ€ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชงเซ€เชฎเซเช‚ เช›เซ‡. เชคเซ‡เช“ IO เชธเซเชŸเซ‡เช• เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ‡ fsync เชชเชธเชพเชฐ เช•เชฐเซ‡ เช›เซ‡. เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เช•เชคเชพเชฐ เช›เซ‡, เชคเซ‡ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ fsync เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชกเชฟเชธเซเช• เชชเชฐเชจเซ€ เชซเชพเช‡เชฒเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸเชฐ เช•เชคเชพเชฐ เชฎเซ‹เชŸเซ€ เช…เชจเซ‡ เชญเชฐเซ‡เชฒเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชฌเซ‡เช•เชเชจเซเชกเชจเซ‡ fsync เช•เชฐเชตเชพเชจเซ€ เชซเชฐเชœ เชชเชกเซ‡ เช›เซ‡ เช…เชจเซ‡ เช† เชฌเซ‡เช•เชเชจเซเชกเชจเซ‡ เชงเซ€เชฎเซเช‚ เช•เชฐเซ‡ เช›เซ‡., เชเชŸเชฒเซ‡ เช•เซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เชฎเซ‹เชกเซ‹ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเชณเชถเซ‡. เชœเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช† เชฎเซ‚เชฒเซเชฏ เชถเซ‚เชจเซเชฏ เช•เชฐเชคเชพ เชตเชงเชพเชฐเซ‡ เช›เซ‡, เชคเซ‹ เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช• เชธเชฎเชธเซเชฏเชพ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชฒเซ‡เช–เช•เชจเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเชตเชพเชจเซ€ เช…เชจเซ‡ เชกเชฟเชธเซเช• เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชšเซ‡เชคเชตเชฃเซ€: _เชจเซ€เชšเซ‡เชจเซเช‚ เชฒเช–เชพเชฃ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช†เช‚เช•เชกเชพเช•เซ€เชฏ เชฆเซƒเชถเซเชฏเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡. เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ 10 เชฎเชพเช‚ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชตเซเชฏเซ เช…เชจเซ‡ เชซเช‚เช•เซเชถเชจ เชจเชพเชฎเซ‹เชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชจเชพเชฎ เชฌเชฆเชฒเชตเชพเชจเซ‹ เชธเชพเชฐ เชฌเชฆเชฒเชตเชพเชจเซ‹ เชนเชคเซ‹. xlog เชชเชฐ wal ะธ location เชชเชฐ lsn เชซเช‚เช•เซเชถเชจ/เชตเซเชฏเซ เชจเชพเชฎเซ‹ เชตเช—เซ‡เชฐเซ‡เชฎเชพเช‚ เช–เชพเชธ เช‰เชฆเชพเชนเชฐเชฃ, เช•เชพเชฐเซเชฏ pg_xlog_location_diff() เชฅเซ€ เชจเชพเชฎ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ pg_wal_lsn_diff()._

เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชนเซ€เช‚ เชชเชฃ เช˜เชฃเซเช‚ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ เชซเช•เซเชค เชธเซเชฅเชพเชจ เชธเช‚เชฌเช‚เชงเชฟเชค เชตเชธเซเชคเซเช“เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชœเซ‹ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช•เซ‡ เชฌเชงเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เชธเชฎเชพเชจ เช›เซ‡, เชคเซ‹ เช† เช†เชฆเชฐเซเชถ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฎเชพเชธเซเชŸเชฐเชฅเซ€ เชชเชพเช›เชณ เชฐเชนเซ‡เชคเซ€ เชจเชฅเซ€.

เช…เชนเซ€เช‚ เช† เชนเซ‡เช•เซเชธเชพเชกเซ‡เชธเชฟเชฎเชฒ เชชเซ‹เชเชฟเชถเชจ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชฎเชพเช‚เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เช›เซ‡. เชœเซ‹ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชธเชคเชค เชตเชงเซ‡ เช›เซ‡: เชฆเชพเช–เชฒ, เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚, เชตเช—เซ‡เชฐเซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

ัะบะพะปัŒะบะพ ะทะฐะฟะธัะฐะฝะพ xlog ะฒ ะฑะฐะนั‚ะฐั…
$ select
pg_xlog_location_diff(pg_current_xlog_location(),'0/00000000');
ะปะฐะณ ั€ะตะฟะปะธะบะฐั†ะธะธ ะฒ ะฑะฐะนั‚ะฐั…
$ select
client_addr,
pg_xlog_location_diff(pg_current_xlog_location(), replay_location)
from pg_stat_replication;
ะปะฐะณ ั€ะตะฟะปะธะบะฐั†ะธะธ ะฒ ัะตะบัƒะฝะดะฐั…
$ select
extract(epoch from now() - pg_last_xact_replay_timestamp());

เชœเซ‹ เช† เชตเชธเซเชคเซเช“ เช…เชฒเช— เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เช…เช‚เชคเชฐ เช›เซ‡. เชฒเซ‡เช— เช เชฎเชพเชธเซเชŸเชฐเชจเซ€ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเชจเซ‹ เชฒเซ‡เช— เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชกเซ‡เชŸเชพ เชธเชฐเซเชตเชฐเซเชธ เชตเชšเซเชšเซ‡ เช…เชฒเช— เชชเชกเซ‡ เช›เซ‡.

เชตเชฟเชฒเช‚เชฌเชจเชพ เชคเซเชฐเชฃ เช•เชพเชฐเชฃเซ‹ เช›เซ‡:

  • เชคเซ‡ เชกเชฟเชธเซเช• เชธเชฌเชธเชฟเชธเซเชŸเชฎ เช›เซ‡ เชœเซ‡ เชซเชพเช‡เชฒ เชธเชฎเชจเซเชตเชฏเชจ เชฐเชพเช‡เชŸเซเชธเชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€.
  • เช† เชธเช‚เชญเชตเชฟเชค เชจเซ‡เชŸเชตเชฐเซเช• เชญเซ‚เชฒเซ‹ เช…เชฅเชตเชพ เชจเซ‡เชŸเชตเชฐเซเช• เช“เชตเชฐเชฒเซ‹เชก เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชกเซ‡เชŸเชพ เชชเชพเชธเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเชตเชพเชจเซ‹ เชธเชฎเชฏ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡ เชคเซ‡เชจเซเช‚ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชจ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€.
  • เช…เชจเซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ. เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เช เช–เซ‚เชฌ เชœ เชฆเซเชฐเซเชฒเชญ เช•เซ‡เชธ เช›เซ‡. เช…เชจเซ‡ เชฎเซ‡เช‚ เชคเซ‡ เชฌเซ‡ เช•เซ‡ เชคเซเชฐเชฃ เชตเช–เชค เชœเซ‹เชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชชเชฃ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เช…เชจเซ‡ เช…เชนเซ€เช‚ เชคเซเชฐเชฃ เชชเซเชฐเชถเซเชจเซ‹ เช›เซ‡ เชœเซ‡ เช…เชฎเชจเซ‡ เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช…เชฎเซ‡ เช…เช‚เชฆเชพเชœ เชฒเช—เชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชพเชฐเชพ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชฎเชพเช‚ เช•เซ‡เชŸเชฒเซเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชก เช›เซ‡. เช†เชตเชพ เช•เชพเชฐเซเชฏ เช›เซ‡ pg_xlog_location_diff เช…เชจเซ‡ เช…เชฎเซ‡ เชฌเชพเช‡เชŸเซเชธ เช…เชจเซ‡ เชธเซ‡เช•เช‚เชกเชฎเชพเช‚ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฒเซ‡เช—เชจเซ‹ เช…เช‚เชฆเชพเชœ เชฒเช—เชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เช† เชฎเชพเชŸเซ‡ เช† เชฆเซƒเชถเซเชฏ (VIEWs)เชฎเชพเช‚เชฅเซ€ เชฎเซ‚เชฒเซเชฏเชจเซ‹ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช.

เช‰เชฆเชพเชนเชฐเชฃ: pg_xlog_location เชจเซ‡ เชฌเชฆเชฒเซ‡diff() เชซเช‚เช•เซเชถเชจ, เชคเชฎเซ‡ เชฌเชพเชฆเชฌเชพเช•เซ€ เช“เชชเชฐเซ‡เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชเช• เชธเซเชฅเชพเชจเชจเซ‡ เชฌเซ€เชœเชพ เชธเซเชฅเชพเชจเชฎเชพเช‚เชฅเซ€ เชฌเชพเชฆ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช†เชฐเชพเชฎเชฆเชพเชฏเช•.

เชฒเซ‡เช— เชธเชพเชฅเซ‡, เชœเซ‡ เชธเซ‡เช•เช‚เชกเชฎเชพเช‚ เช›เซ‡, เชคเซเชฏเชพเช‚ เชเช• เช•เซเชทเชฃ เช›เซ‡. เชœเซ‹ เชฎเชพเชธเซเชŸเชฐ เชชเชฐ เช•เซ‹เชˆ เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชจเชฅเซ€, เชคเซ‹ เชตเซเชฏเชตเชนเชพเชฐ เชฒเช—เชญเช— 15 เชฎเชฟเชจเชฟเชŸ เชชเชนเซ‡เชฒเชพ เชนเชคเซ‹ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชจเชฅเซ€, เช…เชจเซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชชเชฐ เช† เชฒเซ‡เช—เชจเซ‡ เชœเซ‹เชˆเช, เชคเซ‹ เช†เชชเชฃเชจเซ‡ 15 เชฎเชฟเชจเชฟเชŸเชจเซ‹ เชฒเซ‡เช— เชฆเซ‡เช–เชพเชถเซ‡. เช† เชฏเชพเชฆ เชฐเชพเช–เชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช† เชฒเซ‡เช— เชœเซ‹เชฏเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฎเซ‚เชฐเซเช– เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

pg_stat_all_tables เช เช…เชจเซเชฏ เช‰เชชเชฏเซ‹เช—เซ€ เชฆเซƒเชถเซเชฏ เช›เซ‡. เชคเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹ เชชเชฐ เช†เช‚เช•เชกเชพ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช•เซ‹เชทเซเชŸเช•เซ‹ เชนเซ‹เชฏ เช›เซ‡, เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชนเซ‹เชฏ เช›เซ‡, เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชฐเชฟเชฏเชพเช“ เชนเซ‹เชฏ เช›เซ‡, เช†เชชเชฃเซ‡ เช† เชฆเซƒเชถเซเชฏเชฅเซ€ เช† เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
relname,
pg_size_pretty(pg_relation_size(relname::regclass)) as size,
seq_scan, seq_tup_read,
seq_scan / seq_tup_read as seq_tup_avg
from pg_stat_user_tables
where seq_tup_read > 0 order by 3,4 desc limit 5;

เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชœเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เชคเซ‡ เช•เซเชฐเชฎเชฟเช• เช•เซ‹เชทเซเชŸเช• เชธเซเช•เซ‡เชจ เช›เซ‡. เช† เชซเช•เชฐเชพเช“ เชชเช›เซ€เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชชเซ‹เชคเซ‡ เชœ เช–เชฐเชพเชฌ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡ เชธเซ‚เชšเชตเชคเซเช‚ เชจเชฅเซ€ เช•เซ‡ เช†เชชเชฃเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เช‚เชˆเช• เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เชคเซเชฏเชพเช‚ เชฌเซ€เชœเซเช‚ เชฎเซ‡เชŸเซเชฐเชฟเช• เช›เซ‡ - seq_tup_read. เช† เช•เซเชฐเชฎเชฟเช• เชธเซเช•เซ‡เชจเชฎเชพเช‚เชฅเซ€ เชชเชฐเชค เช•เชฐเชพเชฏเซ‡เชฒเซ€ เชชเช‚เช•เซเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช›เซ‡. เชœเซ‹ เชธเชฐเซ‡เชฐเชพเชถ เชธเช‚เช–เซเชฏเชพ 1, 000, 10, 000 เช•เชฐเชคเชพเช‚ เชตเชงเซ€ เชœเชพเชฏ, เชคเซ‹ เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช• เชธเซ‚เชšเช• เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซเชฏเชพเช‚เช• เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เชเช•เซเชธเซ‡เชธ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เชฆเซเชตเชพเชฐเชพ เชฅเชพเชฏ, เช…เชฅเชตเชพ เช†เชตเชพ เช•เซเชฐเชฎเชฟเช• เชธเซเช•เซ‡เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเซ€ เชถเช•เซเชฏ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เช†เชตเซเช‚ เชฅเชคเซเช‚ เชจเชฅเซ€.

เชเช• เชธเชฐเชณ เช‰เชฆเชพเชนเชฐเชฃ - เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชฎเซ‹เชŸเซ€ OFFSET เช…เชจเซ‡ LIMIT เชธเชพเชฅเซ‡เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ 100 เชชเช‚เช•เซเชคเชฟเช“ เชธเซเช•เซ‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€ 000 เชœเชฐเซ‚เชฐเซ€ เชชเช‚เช•เซเชคเชฟเช“ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช…เช—เชพเช‰เชจเซ€ เชธเซเช•เซ‡เชจ เช•เชฐเซ‡เชฒเซ€ เชชเช‚เช•เซเชคเชฟเช“ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เชชเชฃ เชเช• เช–เชฐเชพเชฌ เช•เซ‡เชธ เช›เซ‡. เช…เชจเซ‡ เช†เชตเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เช…เชนเซ€เช‚ เชเช• เชธเชฐเชณ SQL เช•เซเชตเซ‡เชฐเซ€ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชชเซเชฐเชพเชชเซเชค เชจเช‚เชฌเชฐเซ‹เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
relname,
pg_size_pretty(pg_total_relation_size(relname::regclass)) as
full_size,
pg_size_pretty(pg_relation_size(relname::regclass)) as
table_size,
pg_size_pretty(pg_total_relation_size(relname::regclass) -
pg_relation_size(relname::regclass)) as index_size
from pg_stat_user_tables
order by pg_total_relation_size(relname::regclass) desc limit 10;

เช† เช•เซ‹เชทเซเชŸเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‹เชทเซเชŸเช•เชจเชพ เช•เชฆ เชชเชฃ เชฎเซ‡เชณเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ pg_total_relation_size(), pg_relation_size().

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชคเซเชฏเชพเช‚ เชฎเซ‡เชŸเชพเช•เชฎเชพเชจเซเชกเซเชธ เช›เซ‡ dt ะธ di, เชœเซ‡เชจเซ‹ เชคเชฎเซ‡ PSQL เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชŸเซ‡เชฌเชฒ เช…เชจเซ‡ เช‡เชจเซเชกเซ‡เช•เซเชธเชจเชพ เช•เชฆ เชชเชฃ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹.

เชœเซ‹ เช•เซ‡, เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชฎเชจเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเชพ เช•เชฆเชจเซ‡ เชœเซ‹เชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡, เชเช•เชพเช‰เชจเซเชŸ เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ เชชเชฃ, เช…เชฅเชตเชพ เชเช•เชพเช‰เชจเซเชŸ เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ, เช…เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ€ เชตเซƒเชฆเซเชงเชฟเชจเชพ เช†เชงเชพเชฐเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เซ‡เชŸเชฒเชพเช• เช…เช‚เชฆเชพเชœเซ‹ เชฌเชพเช‚เชงเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชคเซ‡ เช…เชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชงเซ‡ เช›เซ‡. เช•เซ‡เชŸเชฒเซ€ เชคเซ€เชตเซเชฐเชคเชพ, เช…เชจเซ‡ เช“เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชฎเชพเชชเชจ เชตเชฟเชถเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซ‡เชŸเชฒเชพเช• เชคเชพเชฐเชฃเซ‹ เชฆเซ‹เชฐเซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชฒเช–เซ‹. เชฐเซ‡เช•เซ‹เชฐเซเชก เชถเซเช‚ เช›เซ‡? เชšเชพเชฒเซ‹ เช“เชชเชฐเซ‡เชถเชจ เชœเซ‹เชˆเช UPDATE - เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชชเช‚เช•เซเชคเชฟเช“ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช…เชชเชกเซ‡เชŸ เช เชฌเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€ เช›เซ‡ (เช…เชฅเชตเชพ เชคเซ‡เชจเชพเชฅเซ€ เชชเชฃ เชตเชงเซ). เช† เชเช• เชจเชตเซเช‚ เชชเช‚เช•เซเชคเชฟ เชธเช‚เชธเซเช•เชฐเชฃ เชฆเชพเช–เชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชœเซ‚เชจเชพ เชชเช‚เช•เซเชคเชฟ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‡ เช…เชชเซเชฐเชšเชฒเชฟเชค เชคเชฐเซ€เช•เซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชชเชพเช›เชณเชฅเซ€, เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เช†เชตเชถเซ‡ เช…เชจเซ‡ เชฒเซ€เชŸเซ€เช“เชจเชพ เช† เช…เชชเซเชฐเชšเชฒเชฟเชค เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชจเซ‡ เชธเชพเชซ เช•เชฐเชถเซ‡, เช† เชธเซเชฅเชพเชจเชจเซ‡ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชคเชฐเซ€เช•เซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ‹.

เช‰เชชเชฐเชพเช‚เชค, เช…เชชเชกเซ‡เชŸ เชซเช•เซเชค เชŸเซ‡เชฌเชฒเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เชจเชฅเซ€. เชคเซ‡ เชนเชœเซ เชชเชฃ เช‡เชจเซเชกเซ‡เช•เซเชธ เช…เชชเชกเซ‡เชŸ เช›เซ‡. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชŸเซ‡เชฌเชฒ เชชเชฐ เช˜เชฃเซ€ เชฌเชงเซ€ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เช…เชชเชกเซ‡เชŸ เชธเชพเชฅเซ‡, เชคเชฎเชพเชฎ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช•เซ‡ เชœเซ‡เชฎเชพเช‚ เช•เซเชตเซ‡เชฐเซ€ เชฎเชพเช‚ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡เชฒ เชซเซ€เชฒเซเชกเซเชธ เชญเชพเช— เชฒเซ‡ เช›เซ‡ เชคเซ‡เชจเซ‡ เชชเชฃ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เช† เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชฎเชพเช‚ เช…เชชเซเชฐเชšเชฒเชฟเชค เชชเช‚เช•เซเชคเชฟ เช†เชตเซƒเชคเซเชคเชฟเช“ เชชเชฃ เชนเชถเซ‡ เชœเซ‡เชจเซ‡ เชธเชพเชซ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
s.relname,
pg_size_pretty(pg_relation_size(relid)),
coalesce(n_tup_ins,0) + 2 * coalesce(n_tup_upd,0) -
coalesce(n_tup_hot_upd,0) + coalesce(n_tup_del,0) AS total_writes,
(coalesce(n_tup_hot_upd,0)::float * 100 / (case when n_tup_upd > 0
then n_tup_upd else 1 end)::float)::numeric(10,2) AS hot_rate,
(select v[1] FROM regexp_matches(reloptions::text,E'fillfactor=(\d+)') as
r(v) limit 1) AS fillfactor
from pg_stat_all_tables s
join pg_class c ON c.oid=relid
order by total_writes desc limit 50;

เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชกเชฟเชเชพเช‡เชจเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เช…เชชเชกเซ‡เชŸ เช เชนเซ‡เชตเซ€เชตเซ‡เช‡เชŸ เช“เชชเชฐเซ‡เชถเชจ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชธเชฐเชณ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช–เชพเชตเซเช‚ hot updates. เชคเซ‡เช“ PostgreSQL เชธเช‚เชธเซเช•เชฐเชฃ 8.3 เชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏเชพ. เช…เชจเซ‡ เช† เชถเซเช‚ เช›เซ‡? เช† เชเช• เชนเชณเชตเชพ เชตเชœเชจเชจเซเช‚ เช…เชชเชกเซ‡เชŸ เช›เซ‡ เชœเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชจเซ‡ เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เชฅเชตเชพเชจเซเช‚ เช•เชพเชฐเชฃ เช†เชชเชคเซเช‚ เชจเชฅเซ€. เชเชŸเชฒเซ‡ เช•เซ‡, เช…เชฎเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เช…เชชเชกเซ‡เชŸ เช•เชฐเซเชฏเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เชซเช•เซเชค เชชเซƒเชทเซเช เชฎเชพเช‚เชจเซ‹ เชฐเซ‡เช•เซ‹เชฐเซเชก (เชœเซ‡ เชŸเซ‡เชฌเชฒเชจเซ‹ เช›เซ‡) เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เช…เชจเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชนเชœเซ€ เชชเชฃ เชชเซƒเชทเซเช เชฎเชพเช‚ เชธเชฎเชพเชจ เชฐเซ‡เช•เซ‹เชฐเซเชก เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡. เช•เชพเชฎเชจเซ‹ เชฅเซ‹เชกเซ‹ เชฐเชธเชชเซเชฐเชฆ เชคเชฐเซเช• เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชฎเชพเช‚ เช† เชธเชพเช‚เช•เชณเซ‹ เชนเซ‹เชฏ เช›เซ‡ hot เชชเซเชจเชƒเชจเชฟเชฐเซเชฎเชพเชฃ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡, เช…เชจเซ‡ เชฌเชงเซเช‚ เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เช“เช›เชพ เช•เชšเชฐเซ‹ เชธเชพเชฅเซ‡ เชฅเชพเชฏ เช›เซ‡.

เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเซ‹เชฏ n_tup_hot_upd เชฎเซ‹เชŸเซเช‚, เชคเซ‡ เช–เซ‚เชฌ เชธเชพเชฐเซเช‚ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชนเชณเชตเชพ เชตเชœเชจเชจเชพ เช…เชชเชกเซ‡เชŸเซเชธ เชชเซเชฐเชšเชฒเชฟเชค เช›เซ‡ เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชฆเซเชฐเชทเซเชŸเชฟเช เช† เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเชธเซเชคเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

ALTER TABLE table_name SET (fillfactor = 70);

เชตเซ‹เชฒเซเชฏเซเชฎ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชงเชพเชฐเชตเซเช‚ hot updateเช“เชต? เช…เชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช fillfactor. INSERTs เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชชเซƒเชทเซเช  เชญเชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเซ‡ เช…เชจเชพเชฎเชค เช–เชพเชฒเซ€ เชœเช—เซเชฏเชพเชจเซเช‚ เช•เชฆ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชฆเชพเช–เชฒเซ‹ เชŸเซ‡เชฌเชฒ เชชเชฐ เชœเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เชชเซƒเชทเซเช เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชญเชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชพเช‚ เช–เชพเชฒเซ€ เชœเช—เซเชฏเชพ เช›เซ‹เชกเชถเซ‹ เชจเชนเซ€เช‚. เชชเช›เซ€ เชเช• เชจเชตเซเช‚ เชชเซƒเชทเซเช  เชชเซเชฐเช•เชพเชถเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชกเซ‡เชŸเชพ เชซเชฐเซ€เชฅเซ€ เชญเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เช† เชกเชฟเชซเซ‹เชฒเซเชŸ เชตเชฐเซเชคเชจ เช›เซ‡, เชซเชฟเชฒเชซเซ‡เช•เซเชŸเชฐ = 100%.

เช…เชฎเซ‡ เชซเชฟเชฒเชซเซ‡เช•เซเชŸเชฐเชจเซ‡ 70% เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เชเชŸเชฒเซ‡ เช•เซ‡, เชฆเชพเช–เชฒ เชธเชพเชฅเซ‡, เชเช• เชจเชตเซเช‚ เชชเซƒเชทเซเช  เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชซเช•เซเชค 70% เชชเซƒเชทเซเช  เชญเชฐเชพเชฏเซเช‚ เชนเชคเซเช‚. เช…เชจเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชจเชพเชฎเชคเชฎเชพเช‚ 30% เชฌเชพเช•เซ€ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชคเซ‡ เชœ เชชเซƒเชทเซเช  เชชเชฐ เชฅเชถเซ‡, เช…เชจเซ‡ เชชเช‚เช•เซเชคเชฟเชจเซเช‚ เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชคเซ‡ เชœ เชชเซƒเชทเซเช  เชชเชฐ เชซเชฟเชŸ เชฅเชถเซ‡. เช…เชจเซ‡ hot_update เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช† เชŸเซ‡เชฌเชฒ เชชเชฐ เชฒเช–เชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select c.relname,
current_setting('autovacuum_vacuum_threshold') as av_base_thresh,
current_setting('autovacuum_vacuum_scale_factor') as av_scale_factor,
(current_setting('autovacuum_vacuum_threshold')::int +
(current_setting('autovacuum_vacuum_scale_factor')::float * c.reltuples))
as av_thresh,
s.n_dead_tup
from pg_stat_user_tables s join pg_class c ON s.relname = c.relname
where s.n_dead_tup > (current_setting('autovacuum_vacuum_threshold')::int
+ (current_setting('autovacuum_vacuum_scale_factor')::float * c.reltuples));

เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เช•เชคเชพเชฐ. เช‘เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เช เชเชตเซ€ เชธเชฌเชธเชฟเชธเซเชŸเชฎ เช›เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ PostgreSQL เชฎเชพเช‚ เชฌเชนเซ เช“เช›เชพ เช†เช‚เช•เชกเชพ เช›เซ‡. เช†เชชเชฃเซ‡ เชซเช•เซเชค pg_stat_activity เชฎเชพเช‚ เช•เซ‹เชทเซเชŸเช•เซ‹เชฎเชพเช‚ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช† เช•เซเชทเชฃเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เช•เซ‡เชŸเชฒเชพ เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชธเชซเชฐเชฎเชพเช‚ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เช•เชคเชพเชฐเชฎเชพเช‚ เช•เซ‡เชŸเชฒเชพ เชŸเซ‡เชฌเชฒ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเซเช‚ เช–เซ‚เชฌ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ: _ Postgres 10 เชฅเซ€, เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ เชตเซ‡เช•เซเชฏเซ‚เชฎ เชŸเซเชฐเซ…เช• เช•เชฐเชตเชพเชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เช˜เชฃเซ‹ เชธเซเชงเชพเชฐเซ‹ เชฅเชฏเซ‹ เช›เซ‡ - pg_stat_progress เชตเซเชฏเซ เชฆเซ‡เช–เชพเชฏเซ‹ เช›เซ‡เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ, เชœเซ‡ เช‘เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชจเชพ เชฎเซเชฆเซเชฆเชพเชจเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เช…เชฎเซ‡ เช† เชธเชฐเชณ เช•เซเชตเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เชตเซ‡เช•เซเชฏเซเชฎ เช•เซเชฏเชพเชฐเซ‡ เชฌเชจเชพเชตเชตเซเช‚ เชœเซ‹เชˆเช. เชชเชฐเช‚เชคเซ, เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เช•เซเชฏเชพเชฐเซ‡ เชถเชฐเซ‚ เชฅเชตเซ‹ เชœเซ‹เชˆเช? เช† เชถเชฌเซเชฆเชฎเชพเชณเชพเช“เชจเซ€ เชœเซ‚เชจเซ€ เช†เชตเซƒเชคเซเชคเชฟเช“ เช›เซ‡ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฎเซ‡เช‚ เช…เช—เชพเช‰ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€. เช…เชชเชกเซ‡เชŸ เชฅเชฏเซเช‚ เช›เซ‡, เชชเช‚เช•เซเชคเชฟเชจเซเช‚ เชจเชตเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชถเชฌเซเชฆเชฎเชพเชณเชพเชจเซเช‚ เช…เชชเซเชฐเชšเชฒเชฟเชค เชธเช‚เชธเซเช•เชฐเชฃ เชฆเซ‡เช–เชพเชฏเซเช‚ เช›เซ‡. เชŸเซ‡เชฌเชฒ pg_stat_user_tables เช†เชตเชพ เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡ n_dead_tup. เชคเซ‡ "เชฎเซƒเชค" เชชเช‚เช•เซเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เชœเชฒเชฆเซ€ เชฎเซƒเชค เชชเช‚เช•เซเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชšเซ‹เช•เซเช•เชธ เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก เช•เชฐเชคเชพเช‚ เชตเชงเซ เชฅเชˆ เช—เชˆ เช›เซ‡, เชเช• เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชŸเซ‡เชฌเชฒ เชชเชฐ เช†เชตเชถเซ‡.

เช…เชจเซ‡ เช† เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡? เช† เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชชเช‚เช•เซเชคเชฟเช“เชจเซ€ เช•เซเชฒ เชธเช‚เช–เซเชฏเชพเชจเซ€ เช–เซ‚เชฌ เชšเซ‹เช•เซเช•เชธ เชŸเช•เชพเชตเชพเชฐเซ€ เช›เซ‡. เชเช• เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡ autovacuum_vacuum_scale_factor. เชคเซ‡ เชŸเช•เชพเชตเชพเชฐเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ 10% + 50 เชฐเซ‡เช–เชพเช“เชจเซ‹ เชตเชงเชพเชฐเชพเชจเซ‹ เช†เชงเชพเชฐ เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก เช›เซ‡. เช…เชจเซ‡ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡? เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เซ‹เชทเซเชŸเช•เชจเซ€ เชฌเชงเซ€ เชชเช‚เช•เซเชคเชฟเช“เชฎเชพเช‚เชฅเซ€ "10% + 50" เช•เชฐเชคเชพเช‚ เชตเชงเซ เชฎเซƒเชค เชชเช‚เช•เซเชคเชฟเช“ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชŸเซ‡เชฌเชฒเชจเซ‡ เช‘เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชชเชฐ เชฎเซ‚เช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select c.relname,
current_setting('autovacuum_vacuum_threshold') as av_base_thresh,
current_setting('autovacuum_vacuum_scale_factor') as av_scale_factor,
(current_setting('autovacuum_vacuum_threshold')::int +
(current_setting('autovacuum_vacuum_scale_factor')::float * c.reltuples))
as av_thresh,
s.n_dead_tup
from pg_stat_user_tables s join pg_class c ON s.relname = c.relname
where s.n_dead_tup > (current_setting('autovacuum_vacuum_threshold')::int
+ (current_setting('autovacuum_vacuum_scale_factor')::float * c.reltuples));

เชœเซ‹ เช•เซ‡, เชคเซเชฏเชพเช‚ เชเช• เชฌเชฟเช‚เชฆเซ เช›เซ‡. เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฎเชพเชŸเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก av_base_thresh ะธ av_scale_factor เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡, เชคเซ‡ เชฎเซเชœเชฌ, เชฅเซเชฐเซ‡เชถเซ‹เชฒเซเชก เชตเซˆเชถเซเชตเชฟเช• เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชŸเซ‡เชฌเชฒ เชฎเชพเชŸเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชนเชถเซ‡. เชคเซ‡เชฅเซ€, เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชฏเซเช•เซเชคเชฟเช“ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเชจเซ‡ เชฐเชธ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เชเชตเชฟเชŸเซ‹เชจเชพ เช…เชฎเชพเชฐเชพ เชธเชพเชฅเซ€เชฆเชพเชฐเซ‹เชจเชพ เช…เชจเซเชญเชตเชจเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ (เชธเซเชฒเชพเช‡เชก เชชเชฐเชจเซ€ เชฒเชฟเช‚เช• เช…เชฎเชพเชจเซเชฏ เช›เซ‡ เช…เชจเซ‡ เชŸเซ‡เช•เซเชธเซเชŸเชฎเชพเช‚ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡).

เชคเซ‡เช“ เชฎเชพเชŸเซ‡ เชฒเช–เซเชฏเซเช‚ เชนเชคเซเช‚ เชฎเซเชจเชฟเชจ เชชเซเชฒเช—เช‡เชจเชœเซ‡ เช† เชฌเชพเชฌเชคเซ‹เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡ เช›เซ‡. เชฌเซ‡ เชšเชพเชฆเชฐ เชชเชฐ เชซเซ‚เชŸเช•เซเชฒเซ‹เชฅ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชตเชฟเชšเชพเชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฆเซเชฆเชจ เช…เชธเชฐเช•เชพเชฐเช• เชฐเซ€เชคเซ‡ เช…เชฎเชจเซ‡ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเช‚ เชŸเซ‡เชฌเชฒ เชฎเชพเชŸเซ‡ เช˜เชฃเซเช‚ เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซเชฏเชพเช‚ เช“เช›เซ€ เช›เซ‡.

เช†เชชเชฃเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชถเซเช‚ เช•เชฐเซ€ เชถเช•เซ€เช? เชœเซ‹ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชฒเชพเช‚เชฌเซ€ เช•เชคเชพเชฐ เชนเซ‹เชฏ เช…เชจเซ‡ เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชคเซ‡เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เช†เชชเชฃเซ‡ เชตเซ‡เช•เซเชฏเซ‚เชฎ เช•เชพเชฎเชฆเชพเชฐเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชงเชพเชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชฅเชตเชพ เช–เชพเชฒเซ€ เชตเซ‡เช•เซเชฏเซ‚เชฎเชจเซ‡ เชตเชงเซ เช†เช•เซเชฐเชฎเช• เชฌเชจเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช.เชœเซ‡เชฅเซ€ เชคเซ‡ เชชเชนเซ‡เชฒเชพ เชŸเซเชฐเชฟเช—เชฐ เชฅเชพเชฏ, เชŸเซ‡เชฌเชฒเชจเซ‡ เชจเชพเชจเชพ เชŸเซเช•เชกเชพเช“เชฎเชพเช‚ เชชเซเชฐเซ‹เชธเซ‡เชธ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เช†เชฎ เช•เชคเชพเชฐ เช˜เชŸเชถเซ‡. - เช…เชนเซ€เช‚ เชฎเซเช–เซเชฏ เชตเชธเซเชคเซ เชกเชฟเชธเซเช• เชชเชฐเชจเชพ เชญเชพเชฐเชจเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡. เชถเซ‚เชจเซเชฏเชพเชตเช•เชพเชถ เชตเชธเซเชคเซ เชฎเชซเชค เชจเชฅเซ€, เชœเซ‹เช•เซ‡ SSD / NVMe เช‰เชชเช•เชฐเชฃเซ‹เชจเชพ เช†เช—เชฎเชจ เชธเชพเชฅเซ‡, เชธเชฎเชธเซเชฏเชพ เช“เช›เซ€ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชฌเชจเซ€ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

pg_stat_all_indexes เช เช‡เชจเซเชกเซ‡เช•เซเชธ เชชเชฐเชจเชพ เช†เช‚เช•เชกเชพ เช›เซ‡. เชคเซ‡เชฃเซ€ เชฎเซ‹เชŸเซ€ เชจเชฅเซ€. เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชˆเชจเซเชกเซ‡เช•เซเชธเชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชจเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช•เชˆ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชตเชงเชพเชฐเชพเชจเซ€ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชฎเซ‡เช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เช…เชชเชกเซ‡เชŸ เชฎเชพเชคเซเชฐ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชคเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชจเซ‡ เชชเชฃ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเชฆเชจเซเชธเชพเชฐ, เชœเซ‹ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชŸเซ‡เชฌเชฒ เชชเชฐ เช˜เชฃเซ€ เชฌเชงเซ€ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชชเช‚เช•เซเชคเชฟเช“ เช…เชชเชกเซ‡เชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช…เชจเซเช•เซเชฐเชฎเชฟเชค เช•เซเชทเซ‡เชคเซเชฐเซ‹เชจเชพ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชจเซ‡ เชชเชฃ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซ‡ เชœเซ‹ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฌเชฟเชจเช‰เชชเชฏเซ‹เช—เซ€ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช›เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เช‡เชจเซเชกเซ‡เช•เซเชธ เชธเซเช•เซ‡เชจ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡ เช…เชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เชฌเซ‡เชฒเชพเชธเซเชŸ เชคเชฐเซ€เช•เซ‡ เช…เชŸเช•เซ€ เชœเชพเชฏ เช›เซ‡. เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช›เซ‚เชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชฎเชพเชŸเซ‡ เช†เชชเชฃเชจเซ‡ เชเช• เช•เซเชทเซ‡เชคเซเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ idx_scan. เช…เชฎเซ‡ เชซเช•เซเชค เช‡เชจเซเชกเซ‡เช•เซเชธ เชธเซเช•เซ‡เชจเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชœเซ‹เชˆเช เช›เซ€เช. เชœเซ‹ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเชฎเชพเช‚ เช†เช‚เช•เชกเชพ เชธเช‚เช—เซเชฐเชนเชจเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชฒเชพเช‚เชฌเชพ เช—เชพเชณเชพ (เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ 2-3 เช…เช เชตเชพเชกเชฟเชฏเชพ) เชฆเชฐเชฎเชฟเชฏเชพเชจ เชถเซ‚เชจเซเชฏ เชธเซเช•เซ‡เชจ เชนเซ‹เชฏ, เชคเซ‹ เชธเช‚เชญเชตเชคเชƒ เช† เช–เชฐเชพเชฌ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช›เซ‡, เช…เชฎเชพเชฐเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช›เซ‚เชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ: เชœเซเชฏเชพเชฐเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เช•เซเชฒเชธเซเชŸเชฐเซ‹เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชจเชนเชฟเช‚ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชถเซ‹เชงเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชคเชฎเชพเชฎ เช—เชพเช‚เช เซ‹ เชคเชชเชพเชธเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช†เช‚เช•เชกเชพ เชตเซˆเชถเซเชตเชฟเช• เชจเชฅเซ€, เช…เชจเซ‡ เชœเซ‹ เชฎเชพเชธเซเชŸเชฐ เชชเชฐ เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชคเซ‹ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ เชชเชฐ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ (เชœเซ‹ เชคเซเชฏเชพเช‚ เชญเชพเชฐ เชนเซ‹เชฏ เชคเซ‹).

เชฌเซ‡ เชฒเชฟเช‚เช•เซเชธ:

https://github.com/dataegret/pg-utils/blob/master/sql/low_used_indexes.sql

http://www.databasesoup.com/2014/05/new-finding-unused-indexes-query.html

เชจ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเซ‹เชงเชตเซ€ เชคเซ‡ เชฎเชพเชŸเซ‡ เช† เชตเชงเซ เช…เชฆเซเชฏเชคเชจ เช•เซเชตเซ‡เชฐเซ€ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช›เซ‡.

เชฌเซ€เชœเซ€ เชฒเชฟเช‚เช• เชเช• เชฐเชธเชชเซเชฐเชฆ เชชเซเชฐเชถเซเชจ เช›เซ‡. เชเชฎเชพเช‚ เชฌเชนเซ เชคเซเชšเซเช› เชคเชฐเซเช• เช›เซ‡. เชนเซเช‚ เชธเชฎเซ€เช•เซเชทเชพ เชฎเชพเชŸเซ‡ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชฆเซเชตเชพเชฐเชพ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชธเชพเชฐเชพเช‚เชถ เช†เชชเชตเซเช‚ เชœเซ‹เชˆเช?

  • เชจเชนเชฟ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช‡เชจเซเชกเซ‡เช•เซเชธ เช–เชฐเชพเชฌ เช›เซ‡.

  • เชคเซ‡เช“ เชœเช—เซเชฏเชพ เชฒเซ‡ เช›เซ‡.

  • เช…เชชเชกเซ‡เชŸ เช•เชพเชฎเช—เซ€เชฐเซ€ เชงเซ€เชฎเซ€ เช•เชฐเซ‹.

  • เชตเซ‡เช•เซเชฏเซ‚เชฎ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเซเช‚ เช•เชพเชฎ.

เชœเซ‹ เช†เชชเชฃเซ‡ เชจ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เช, เชคเซ‹ เช…เชฎเซ‡ เชซเช•เซเชค เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฌเชจเชพเชตเซ€เชถเซเช‚.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช—เชพเชฎเซ€ เชฆเซƒเชถเซเชฏ เช›เซ‡ pg_stat_activity. เช† เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซเช‚ เชเชจเชพเชฒเซ‹เช— เช›เซ‡ ps, เชฎเชพเชคเซเชฐ PostgreSQL เชฎเชพเช‚. เชœเซ‹ ps'เช“เชนเชฎ เชคเชฎเซ‡ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชœเซเช“ เช›เซ‹, เชชเช›เซ€ pg_stat_activity เชคเชฎเชจเซ‡ PostgreSQL เชจเซ€ เช…เช‚เชฆเชฐเชจเซ€ เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชฌเชคเชพเชตเชถเซ‡.

เช†เชชเชฃเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชถเซเช‚ เชฒเชˆ เชถเช•เซ€เช?

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
count(*)*100/(select current_setting('max_connections')::int)
from pg_stat_activity;

เช…เชฎเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฅเชˆ เชฐเชนเซ‡เชฒเซ€ เชเช•เช‚เชฆเชฐ เชชเซเชฐเชตเซƒเชคเซเชคเชฟ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชจเชตเซ€ เชœเชฎเชพเชตเชŸ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เชคเซเชฏเชพเช‚ เชฌเชงเซเช‚ เชœ เชตเชฟเชธเซเชซเซ‹เชŸ เชฅเชฏเซเช‚, เชจเชตเชพ เชœเซ‹เชกเชพเชฃเซ‹ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฅเซ€, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เชญเซ‚เชฒเซ‹ เชฐเซ‡เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ€ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
client_addr, usename, datname, count(*)
from pg_stat_activity group by 1,2,3 order by 4 desc;

เช…เชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ€ เช•เซเชตเซ‡เชฐเซ€ เชšเชฒเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชจเซ‡ เชฎเชนเชคเซเชคเชฎ เช•เชจเซ‡เช•เซเชถเชจ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เช•เชจเซ‡เช•เซเชถเชจเซเชธเชจเซ€ เช•เซเชฒ เชŸเช•เชพเชตเชพเชฐเซ€ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เช…เชจเซ‡ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเซŒเชฅเซ€ เชตเชงเซ เช•เชจเซ‡เช•เซเชถเชจ เช•เซ‹เชจเซ€ เชชเชพเชธเซ‡ เช›เซ‡. เช…เชจเซ‡ เช† เช†เชชเซ‡เชฒ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชœเซเช“ cron_role 508 เชœเซ‹เชกเชพเชฃเซ‹ เช–เซ‹เชฒเซเชฏเชพ. เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เช‚เชˆเช• เชฅเชฏเซเช‚. เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชœเซ‹เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡ เชคเชฆเซเชฆเชจ เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เช† เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เช•เซ‹เชˆ เช…เชธเช‚เช—เชค เชธเช‚เช–เซเชฏเชพ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชœเซ‹ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ OLTP เชฒเซ‹เชก เชนเซ‹เชฏ, เชคเซ‹ เช•เซเชตเซ‡เชฐเซ€เช เชเชกเชชเซ€, เช–เซ‚เชฌ เชœ เชเชกเชชเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เช…เชจเซ‡ เชฒเชพเช‚เชฌเซ€ เช•เซเชตเซ‡เชฐเซ€เช เชจ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เชœเซ‹ เช•เซ‡, เชœเซ‹ เชคเซเชฏเชพเช‚ เชฒเชพเช‚เชฌเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชนเซ‹เชฏ, เชคเซ‹ เชŸเซ‚เช‚เช•เชพ เช—เชพเชณเชพเชฎเชพเช‚ เชšเชฟเช‚เชคเชพ เช•เชฐเชตเชพเชจเซ€ เช•เช‚เชˆ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชฒเชพเช‚เชฌเชพ เช—เชพเชณเซ‡, เชฒเชพเช‚เชฌเซ€ เช•เซเชตเซ‡เชฐเซ€เช เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เชจเซเช•เชธเชพเชจ เชชเชนเซ‹เช‚เชšเชพเชกเซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชŸเซ‡เชฌเชฒ เชซเซเชฐเซ‡เช—เชฎเซ‡เชจเซเชŸเซ‡เชถเชจ เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซ€ เชฌเซเชฒเซ‹เชŸ เช…เชธเชฐเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡. เชฌเซเชฒเซ‹เชŸ เช…เชจเซ‡ เชฒเชพเช‚เชฌเชพ เชชเซเชฐเชถเซเชจเซ‹ เชฌเช‚เชจเซ‡เชจเซ‹ เชจเชฟเช•เชพเชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select
client_addr, usename, datname,
clock_timestamp() - xact_start as xact_age,
clock_timestamp() - query_start as query_age,
query
from pg_stat_activity order by xact_start, query_start;

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹: เช†เชตเซ€ เชตเชฟเชจเช‚เชคเซ€ เชธเชพเชฅเซ‡, เช…เชฎเซ‡ เชฒเชพเช‚เชฌเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช clock_timestamp() เช•เชพเชฎเชจเซ‹ เชธเชฎเชฏ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ. เชฒเชพเช‚เชฌเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชœเซ‡ เช…เชฎเชจเซ‡ เชฎเชณเซ€ เช›เซ‡, เช…เชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฏเชพเชฆ เชฐเชพเช–เซ€ เชถเช•เซ€เช เช›เซ€เช, เชคเซ‡เชฎเชจเซ‡ เชšเชฒเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช explain, เชฏเซ‹เชœเชจเชพเช“ เชœเซเช“ เช…เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ‹. เช…เชฎเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชฒเชพเช‚เชฌเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชถเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชœเซ€เชตเซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select * from pg_stat_activity where state in
('idle in transaction', 'idle in transaction (aborted)';

เช–เชฐเชพเชฌ เชตเซเชฏเชตเชนเชพเชฐเซ‹ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช›เซ‡ เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช›เซ‡ (เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ) เชตเซเชฏเชตเชนเชพเชฐเซ‹.

เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เช›เซ‡? เชตเซเชฏเชตเชนเชพเชฐเซ‹เชฎเชพเช‚ เชฌเชนเซเชตเชฟเชง เชฐเชพเชœเซเชฏเซ‹ เชนเซ‹เชฏ เช›เซ‡. เช…เชจเซ‡ เช†เชฎเชพเช‚เชฅเซ€ เชเช• เชฐเชพเชœเซเชฏ เช—เชฎเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. เชฐเชพเชœเซเชฏเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช•เซเชทเซ‡เชคเซเชฐ เช›เซ‡ state เช† เชฆเซƒเชทเซเชŸเชฟเช. เช…เชจเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฐเชพเชœเซเชฏ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

select * from pg_stat_activity where state in
('idle in transaction', 'idle in transaction (aborted)';

เช…เชจเซ‡, เชฎเซ‡เช‚ เช‰เชชเชฐ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เช† เชฌเซ‡ เชฐเชพเชœเซเชฏเซ‹ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ (เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ) เช–เชฐเชพเชฌ เช›เซ‡. เชคเซ‡ เชถเซ เช›เซ‡? เช† เชคเซเชฏเชพเชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‡ เช•เซ‹เชˆ เชตเซเชฏเชตเชนเชพเชฐ เช–เซ‹เชฒเซเชฏเซ‹, เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเซ€ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชตเซเชฏเชตเชธเชพเชฏ เชตเชฟเชถเซ‡ เช†เช—เชณ เชตเชงเซเชฏเซเช‚. เชตเซเชฏเชตเชนเชพเชฐ เช–เซเชฒเซเชฒเซ‹ เชฐเชนเซ‡ เช›เซ‡. เชคเซ‡ เช…เชŸเช•เซ€ เชœเชพเชฏ เช›เซ‡, เชคเซ‡เชฎเชพเช‚ เช•เชถเซเช‚ เชฅเชคเซเช‚ เชจเชฅเซ€, เชคเซ‡ เช•เชจเซ‡เช•เซเชถเชจ เชฒเซ‡ เช›เซ‡, เชฌเชฆเชฒเชพเชฏเซ‡เชฒเซ€ เชชเช‚เช•เซเชคเชฟเช“ เชชเชฐ เชคเชพเชณเซเช‚ เชฎเชพเชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซ‹เชธเซเชŸเชฐเซเชœเซ‡เชธ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจเชฒ เชเชจเซเชœเชฟเชจเชจเชพ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชธเช‚เชญเชตเชฟเชคเชชเชฃเซ‡ เชนเชœเซ เชชเชฃ เช…เชจเซเชฏ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเชพ เชฌเซเชฒเซ‹เชŸเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เช†เชตเชพ เชตเซเชฏเชตเชนเชพเชฐเซ‹เชจเซ‡ เชชเชฃ เชถเซ‰เชŸ เช•เชฐเชตเชพ เชœเซ‹เชˆเช, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช•เซ‹เชˆ เชชเชฃ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚ เชนเชพเชจเชฟเช•เชพเชฐเช• เช›เซ‡.

เชœเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเชฎเชพเชฐเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชคเซ‡เชฎเชพเช‚เชฅเซ€ 5-10-20 เชฅเซ€ เชตเชงเซ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชšเชฟเช‚เชคเชพ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เช•เช‚เชˆเช• เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹.

เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เช—เชฃเชคเชฐเซ€เชจเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช clock_timestamp(). เช…เชฎเซ‡ เชตเซเชฏเชตเชนเชพเชฐเซ‹ เชถเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช, เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชฎเซ‡เช‚ เช‰เชชเชฐ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชœเซเชฏเชพเชฐเซ‡ เชฌเซ‡ เช…เชฅเชตเชพ เชตเชงเซ เชตเซเชฏเชตเชนเชพเชฐเซ‹ เชเช• เช…เชฅเชตเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเชพ เชœเซ‚เชฅ เชฎเชพเชŸเซ‡ เชธเซเชชเชฐเซเชงเชพ เช•เชฐเซ‡ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเชพเชณเชพเช“ เชนเซ‹เชฏ เช›เซ‡. เช† เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชเช• เช•เซเชทเซ‡เชคเซเชฐ เช›เซ‡ waiting เชฌเซเชฒเชฟเชฏเชจ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ true เช…เชฅเชตเชพ false.

เชธเชพเชšเซเช‚ - เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซ€ เช›เซ‡, เช•เช‚เชˆเช• เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซ€ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชถเชฐเซ‚ เช•เชฐเชจเชพเชฐ เช•เซเชฒเชพเชฏเชจเซเชŸ เชชเชฃ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซเชฏเซ‹ เช›เซ‡. เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เช•เซเชฒเชพเชฏเช‚เชŸ เชฌเซ‡เชธเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฐเชพเชน เชœเซเช เช›เซ‡.

เชšเซ‡เชคเชตเชฃเซ€: เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ 9.6 เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡, เช•เซเชทเซ‡เชคเซเชฐ waiting เชฆเซ‚เชฐ เช•เชฐเซ€เชจเซ‡ เชตเชงเซ เชฌเซ‡ เชฎเชพเชนเชฟเชคเซ€เชชเซเชฐเชฆ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡ wait_event_type ะธ wait_event._

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชฎเชพเชฐเซ‡ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช? เชœเซ‹ เชคเชฎเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เชธเชพเชšเซเช‚ เชœเซ‹เชถเซ‹, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เช†เชตเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชฅเซ€ เช›เซ‚เชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเซ‹ เชœเซ‹เชˆเช. เช…เชฎเซ‡ เชซเช•เซเชค เช†เชตเชพ เชตเซเชฏเชตเชนเชพเชฐเซ‹ เชถเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เชฒเช–เซ€เช เช›เซ€เช เช•เซ‡ เชœเซ‡เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เช•เซ‹เชˆ เชธเซเชชเชฐเซเชงเชพ เชจ เชฅเชพเชฏ. เช…เชจเซ‡ เชชเช›เซ€ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เช†เชตเซเช‚ เชจ เชฅเชพเชฏ.

เช…เชจเซ‡ เช†เชคเซเชฏเช‚เชคเชฟเช•, เชชเชฐเช‚เชคเซ เชธเช‚เชญเชตเชฟเชค เชฐเซ€เชคเซ‡ เชœเซ€เชตเชฒเซ‡เชฃ เช•เซ‡เชธ เชจเชฅเซ€ เชฎเชกเชพเช—เชพเช‚เช เชจเซ€ เช˜เชŸเชจเชพ. เชฌเซ‡ เชตเซเชฏเชตเชนเชพเชฐเซ‹เช เชฌเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซเชฏเชพ เช›เซ‡, เชชเช›เซ€ เชคเซ‡เช“ เชคเซ‡เชฎเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ‡ เช›เซ‡, เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชตเชฟเชฐเซเชฆเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชฎเชพเช‚. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ PostgreSQL เชตเซเชฏเชตเชนเชพเชฐ เชชเซ‹เชคเซ‡ เชœ เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชถเซ‚เชŸ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เช…เชจเซเชฏ เชเช• เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€ เชถเช•เซ‡. เช† เชเช• เชกเซ‡เชก เชเชจเซเชก เชธเชฟเชšเซเชฏเซเชเชถเชจ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชชเซ‹เชคเชพเชจเซ€ เชœเชพเชคเชจเซ‡ เชธเชฎเชœเซ€ เชถเช•เชคเซ€ เชจเชฅเซ€. เชคเซ‡เชฅเซ€, PostgreSQL เชจเซ‡ เช†เชคเซเชฏเช‚เชคเชฟเช• เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพเชจเซ€ เชซเชฐเชœ เชชเชกเซ€ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

https://github.com/lesovsky/uber-scripts/blob/master/postgresql/sql/c4_06_show_locked_queries.sql

https://github.com/lesovsky/uber-scripts/blob/master/postgresql/sql/show_locked_queries_95.sql

https://github.com/lesovsky/uber-scripts/blob/master/postgresql/sql/show_locked_queries_96.sql

http://big-elephants.com/2013-09/exploring-query-locks-in-postgres/

เช…เชจเซ‡ เช…เชนเซ€เช‚ เชฌเซ‡ เช•เซเชตเซ‡เชฐเซ€เช เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เชคเชพเชณเชพเช“ เชŸเซเชฐเซ…เช• เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช…เชฎเซ‡ เชฆเซƒเชถเซเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช pg_locks, เชœเซ‡ เชคเชฎเชจเซ‡ เชญเชพเชฐเซ‡ เชคเชพเชณเชพเช“เชจเซ‡ เชŸเซเชฐเซ…เช• เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เช…เชจเซ‡ เชชเซเชฐเชฅเชฎ เชฒเชฟเช‚เช• เชตเชฟเชจเช‚เชคเซ€ เชŸเซ‡เช•เซเชธเซเชŸ เชชเซ‹เชคเซ‡ เช›เซ‡. เชคเซ‡ เช–เซ‚เชฌ เชฒเชพเช‚เชฌเซ เช›เซ‡.

เช…เชจเซ‡ เชฌเซ€เชœเซ€ เชฒเชฟเช‚เช• เชคเชพเชณเชพเช“ เชชเชฐเชจเซ‹ เชฒเซ‡เช– เช›เซ‡. เชคเซ‡ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡, เชคเซ‡ เช–เซ‚เชฌ เชœ เชฐเชธเชชเซเชฐเชฆ เช›เซ‡.

เชคเซ‹ เช†เชชเชฃเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ€เช? เช…เชฎเซ‡ เชฌเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชœเซ‹เชˆเช เช›เซ€เช. เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ ALTER TABLE เชเช• เช…เชตเชฐเซ‹เชงเชฟเชค เชตเซเชฏเชตเชนเชพเชฐ เช›เซ‡. เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชธเชฎเชพเชชเซเชค เชฅเชฏเซเช‚ เชจเชนเซ€เช‚, เช…เชจเซ‡ เช† เชตเซเชฏเชตเชนเชพเชฐ เชชเซ‹เชธเซเชŸ เช•เชฐเชจเชพเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซเชฏเชพเช‚เช• เช…เชจเซเชฏ เชตเชธเซเชคเซเช“ เช•เชฐเซ€ เชฐเชนเซ€ เช›เซ‡. เช…เชจเซ‡ เชฌเซ€เชœเซ€ เชตเชฟเชจเช‚เชคเซ€ เช…เชชเชกเซ‡เชŸ เช›เซ‡. เชคเซ‡ เชคเซ‡เชจเซเช‚ เช•เชพเชฐเซเชฏ เชšเชพเชฒเซ เชฐเชพเช–เชคเชพ เชชเชนเซ‡เชฒเชพ เชฌเชฆเชฒเชพเชฏเซ‡เชฒ เช•เซ‹เชทเซเชŸเช• เชธเชฎเชพเชชเซเชค เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡.

เช† เชฐเซ€เชคเซ‡ เช†เชชเชฃเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เช•เซ‹เชฃเซ‡ เช•เซ‹เชจเซ‡ เชคเชพเชณเชพ เชฎเชพเชฐเซเชฏเชพ เช›เซ‡, เช•เซ‹เชฃ เช•เซ‹เชจเซ‡ เชชเช•เชกเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เช…เชจเซ‡ เช†เชชเชฃเซ‡ เช†เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช—เชณเชจเซเช‚ เชฎเซ‹เชกเซเชฏเซเชฒ เช›เซ‡ pg_stat_statements. เชฎเซ‡เช‚ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชคเซ‡ เชเช• เชฎเซ‹เชกเซเชฏเซเชฒ เช›เซ‡. เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, PostgreSQL เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹, เชฎเซ‹เชกเซเชฏเซเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ (เชเช• เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡), เช…เชจเซ‡ เชชเช›เซ€ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชเช• เชจเชตเซเช‚ เชฆเซƒเชถเซเชฏ เชนเชถเซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

Cั€ะตะดะฝะตะต ะฒั€ะตะผั ะทะฐะฟั€ะพัะฐ ะฒ ะผะธะปะธัะตะบัƒะฝะดะฐั…
$ select (sum(total_time) / sum(calls))::numeric(6,3)
from pg_stat_statements;

ะกะฐะผั‹ะต ะฐะบั‚ะธะฒะฝะพ ะฟะธัˆัƒั‰ะธะต (ะฒ shared_buffers) ะทะฐะฟั€ะพัั‹
$ select query, shared_blks_dirtied
from pg_stat_statements
where shared_blks_dirtied > 0 order by 2 desc;

เช†เชชเชฃเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชถเซเช‚ เชฒเชˆ เชถเช•เซ€เช? เชœเซ‹ เช†เชชเชฃเซ‡ เชธเชฐเชณ เชตเชธเซเชคเซเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช, เชคเซ‹ เช…เชฎเซ‡ เชธเชฐเซ‡เชฐเชพเชถ เช•เซเชตเซ‡เชฐเซ€ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏ เชฒเชˆ เชถเช•เซ€เช เช›เซ€เช. เชธเชฎเชฏ เชตเชงเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ PostgreSQL เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เช•เช‚เชˆเช• เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช…เชฎเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชธเซŒเชฅเซ€ เชตเชงเซ เชธเช•เซเชฐเชฟเชฏ เชฒเซ‡เช–เชจ เชตเซเชฏเชตเชนเชพเชฐเซ‹ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช เชœเซ‡ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚ เชกเซ‡เชŸเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เช›เซ‡. เชœเซเช“ เช•เซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชฃ เชกเซ‡เชŸเชพ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชกเชฟเชฒเซ€เชŸ เช•เชฐเซ‡ เช›เซ‡.

เช…เชจเซ‡ เช…เชฎเซ‡ เชซเช•เซเชค เช† เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเชพเชŸเซ‡ เชœเซเชฆเชพ เชœเซเชฆเชพ เช†เช‚เช•เชกเชพ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

https://github.com/dataegret/pg-utils/blob/master/sql/global_reports/query_stat_total.sql

เช…เชฎเซ‡ pg_stat_statements เช…เชนเซ‡เชตเชพเชฒเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชฏ เช›เซ‡. เช…เชฎเซ‡ เชฆเชฟเชตเชธเชฎเชพเช‚ เชเช•เชตเชพเชฐ เช†เช‚เช•เชกเชพ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช. เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เชเช•เช เชพ เช•เชฐเซ€เช. เช†เช—เชฒเซ€ เชตเช–เชคเซ‡ เช†เช‚เช•เชกเชพ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เช…เชฎเซ‡ เชเช• เชฐเชฟเชชเซ‹เชฐเซเชŸ เชฌเชจเชพเชตเซ€เช เช›เซ€เช. เช…เชนเซ€เช‚ เช…เชนเซ‡เชตเชพเชฒเชจเซ€ เชฒเชฟเช‚เช• เช›เซ‡. เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช? เช…เชฎเซ‡ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเชพเชŸเซ‡ เชเช•เช‚เชฆเชฐ เช†เช‚เช•เชกเชพเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช. เชชเช›เซ€, เชฆเชฐเซ‡เช• เช•เซเชตเซ‡เชฐเซ€ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช† เชเช•เช‚เชฆเชฐ เช†เช‚เช•เชกเชพเชฎเชพเช‚ เชคเซ‡เชจเชพ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฏเซ‹เช—เชฆเชพเชจเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช.

เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชถเซเช‚ เชœเซ‹เชˆ เชถเช•เซ€เช? เช…เชฎเซ‡ เช…เชจเซเชฏ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ€ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชธเชพเชฎเซ‡ เชšเซ‹เช•เซเช•เชธ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‹ เช•เซเชฒ เช…เชฎเชฒ เชธเชฎเชฏ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชเช•เช‚เชฆเชฐ เชšเชฟเชคเซเชฐเชจเชพ เชธเช‚เชฌเช‚เชงเชฎเชพเช‚ CPU เช…เชจเซ‡ I/O เชตเชชเชฐเชพเชถ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช. เช…เชจเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช† เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เช…เชฎเซ‡ เช† เชฐเชฟเชชเซ‹เชฐเซเชŸเชจเชพ เช†เชงเชพเชฐเซ‡ เชŸเซ‹เชšเชจเซ€ เช•เซเชตเซ‡เชฐเซ€ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เช…เชจเซ‡ เชถเซเช‚ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช–เซ‹เชฐเชพเช• เชฎเซ‡เชณเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชชเชกเชฆเชพ เชชเชพเช›เชณ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชถเซเช‚ เช›เซ‡? เชนเชœเซ เชชเชฃ เช…เชฎเซเช• เชธเชฌเชฎเชฟเชถเชจ เช›เซ‡ เชœเซ‡ เชฎเซ‡เช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชธเชฎเชฏ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช›เซ‡.

เช›เซ‡ pgstattuple เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฏเซ‹เช—เชฆเชพเชจ เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚เชฅเซ€ เชตเชงเชพเชฐเชพเชจเซเช‚ เชฎเซ‹เชกเซเชฏเซเชฒ เชชเชฃ เช›เซ‡. เชคเซ‡ เชคเชฎเชจเซ‡ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ bloat เช•เซ‹เชทเซเชŸเช•เซ‹, เช•เชนเซ‡เชตเชพเชคเชพ. เชŸเซ‡เชฌเชฒ เชซเซเชฐเซ‡เช—เชฎเซ‡เชจเซเชŸเซ‡เชถเชจ. เช…เชจเซ‡ เชœเซ‹ เชซเซเชฐเซ‡เช—เชฎเซ‡เชจเซเชŸเซ‡เชถเชจ เชฎเซ‹เชŸเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชตเชฟเชตเชฟเชง เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เช…เชจเซ‡ เช•เชพเชฐเซเชฏ pgstattuple เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เชตเชงเซ เช•เซ‹เชทเซเชŸเช•เซ‹, เชคเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เช•เชพเชฎ เช•เชฐเชถเซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เช†เช—เชณเชจเซเช‚ เชฏเซ‹เช—เชฆเชพเชจ เช›เซ‡ pg_buffercache. เชคเซ‡ เชคเชฎเชจเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡: เช•เซ‡เชŸเชฒเซ€ เชธเช˜เชจ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เช•เชฏเชพ เช•เซ‹เชทเซเชŸเช•เซ‹ เชฎเชพเชŸเซ‡ เชฌเชซเชฐ เชชเซƒเชทเซเช เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐ เชœเซ‹เชตเชพ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชถเซเช‚ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เช†เช—เชณเชจเซเช‚ เชฎเซ‹เชกเซเชฏเซเชฒ เช›เซ‡ pgfincore. เชคเซ‡ เชคเชฎเชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เช•เซ‰เชฒ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฎเซเชจ-เชธเซเชคเชฐเชจเซ€ เช•เซ‹เชทเซเชŸเช• เช•เชพเชฎเช—เซ€เชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ mincore(), เชเชŸเชฒเซ‡ เช•เซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เชŸเซ‡เชฌเชฒเชจเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเชฎเชพเช‚ เชฒเซ‹เชก เช•เชฐเชตเชพ เช…เชฅเชตเชพ เชคเซ‡เชจเซ‡ เช…เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡, เช…เชจเซเชฏ เชตเชธเซเชคเซเช“เชจเซ€ เชธเชพเชฅเซ‡, เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเชพ เชชเซƒเชทเซเช  เช•เซ‡เชถเชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฌเชซเชฐเซเชธเชฎเชพเช‚, เชชเซƒเชทเซเช  เช•เซ‡เชถเชฎเชพเช‚ เชŸเซ‡เชฌเชฒ เช•เซ‡เชŸเชฒเซเช‚ เช•เชฌเชœเซ‡ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชซเช•เซเชค เชคเชฎเชจเซ‡ เชŸเซ‡เชฌเชฒ เชชเชฐเชจเชพ เชฒเซ‹เชกเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เช†เช—เชณเชจเซเช‚ เชฎเซ‹เชกเซเชฏเซเชฒ เช›เซ‡ pg_stat_kcache. เชคเซ‡ เชธเชฟเชธเซเชŸเชฎ เช•เซ‹เชฒเชจเซ‹ เชชเชฃ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ getrusage(). เช…เชจเซ‡ เชคเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒเชพ เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚, เชคเซ‡ เช…เชฎเชจเซ‡ เชกเชฟเชธเซเช• I/O เชชเชฐ เช…เชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเชฟเชจเซ‹ เช•เซ‡เชŸเชฒเซ‹ เช–เชฐเซเชš เช•เชฐเซเชฏเซ‹, เชเชŸเชฒเซ‡ เช•เซ‡, เชซเชพเชˆเชฒ เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เช…เชจเซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชจเชพ เชตเชชเชฐเชพเชถเชจเซ‡ เชœเซเช เช›เซ‡ เชคเซ‡เชจเซ‹ เช…เช‚เชฆเชพเชœ เช•เชพเชขเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชฎเซ‹เชกเซเชฏเซเชฒ เชœเซเชตเชพเชจ เช›เซ‡ (เช–เซ‡-เช–เซ‡) เช…เชจเซ‡ เชคเซ‡เชจเชพ เช•เชพเชฎ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ PostgreSQL 9.4 เช…เชจเซ‡ pg_stat_statementsเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‡เชจเซ‹ เชฎเซ‡เช‚ เช…เช—เชพเช‰ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

  • เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เชฅเชฐเซเชก เชชเชพเชฐเซเชŸเซ€ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช•เช‚เชˆเช• เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเซเชฐเชฆเชฐเซเชถเชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

  • เช†เช‚เช•เชกเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชธเชฐเชณ เช›เซ‡, เชคเซ‡ เชธเชพเชฆเซ‹ SQL เช›เซ‡. เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€, เชคเซ‡เชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเซเชฏเซเช‚, เชคเซ‡เชจเซ‡ เชฎเซ‹เช•เชฒเซเชฏเซเช‚, เชคเซ‡เชจเซ‡ เชœเซ‹เชฏเซเช‚.

  • เช†เช‚เช•เชกเชพ เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช†เช‚เช•เชกเชพ เชคเชฐเชซ เชตเชณเซ‹ - เชœเซเช“, เชคเชพเชฐเชฃเซ‹ เชฆเซ‹เชฐเซ‹, เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‹.

  • เช…เชจเซ‡ เชชเซเชฐเชฏเซ‹เช—. เช˜เชฃเซ€ เชฌเชงเซ€ เชตเชฟเชจเช‚เชคเซ€เช“, เช˜เชฃเซ‹ เชกเซ‡เชŸเชพ. เชคเชฎเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เช•เซ‡เชŸเชฒเซ€เช• เชนเชพเชฒเชจเซ€ เช•เซเชตเซ‡เชฐเซ€ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซเช‚ เชคเชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เชคเชฎเชจเซ‡ เชฎเซ‚เชณ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซเช•เซ‚เชณ เชนเซ‹เชฏ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

PostgreSQL เช†เช‚เชคเชฐเชฟเช• เช†เช‚เช•เชกเชพเช“เชฎเชพเช‚ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชกเชพเช‡เชต เช•เชฐเซ‹. เชเชฒเซ‡เช•เซเชธเซ€ เชฒเซ‡เชธเซ‹เชตเซเชธเซเช•เซ€

เชธเช‚เชฆเชฐเซเชญเซ‹

เชฎเชพเชจเซเชฏ เชฒเชฟเช‚เช•เซเชธ เชœเซ‡ เชฒเซ‡เช–เชฎเชพเช‚ เชฎเชณเซ€ เชนเชคเซ€, เชœเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡, เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชนเชคเซ€.

เชฒเซ‡เช–เช• เชตเชงเซ เชฒเช–เซ‹
https://dataegret.com/news-blog (eng)

เชธเซเชŸเซ‡เชŸเชฟเชธเซเชŸเชฟเช•เซเชธ เช•เชฒเซ‡เช•เซเชŸเชฐ
https://www.postgresql.org/docs/current/monitoring-stats.html

เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชถเชจ เช•เชพเชฐเซเชฏเซ‹
https://www.postgresql.org/docs/current/functions-admin.html

เชซเชพเชณเซ‹ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹
https://www.postgresql.org/docs/current/pgstatstatements.html
https://www.postgresql.org/docs/current/pgstattuple.html
https://www.postgresql.org/docs/current/pgbuffercache.html
https://github.com/klando/pgfincore
https://github.com/dalibo/pg_stat_kcache

SQL เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ เช…เชจเซ‡ sql เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃเซ‹
https://github.com/dataegret/pg-utils

เชคเชฎเชพเชฐเซเช‚ เชงเซเชฏเชพเชจ เชฌเชฆเชฒ เช†เชญเชพเชฐ!

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

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