PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—

เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ - เจฒเจพเจคเฉ€เจจเฉ€ เจคเฉ‹เจ‚ เจ…เจจเฉเจตเจพเจฆเจฟเจค - เจชเฉเจฐเฉ‡เจฐเจฟเจคเฅค
เจ‡เฉฐเจœเจจเฉ€เจ…เจฐ เจ•เฉเจ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค (c) เจ†เจฐ. เจกเฉ€เจœเจผเจฒ
เจเจชเฉ€เจ—เฉเจฐเจพเจซเจธ.
PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—
เจœเจพเจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจ•เจนเจพเจฃเฉ€ เจ•เจฟเจ‰เจ‚ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจชเฉเจฐเจธเจผเจพเจธเจ• เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจ…เจคเฉ€เจค เจจเฉ‚เฉฐ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจฎเฉเจ–เจฌเฉฐเจง

เจธเจพเจฐเฉ‡ เจจเจพเจ‚ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจนเจจเฅค เจ‡เจคเจซเจผเจพเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจนเจจ. เจธเจฎเฉฑเจ—เจฐเฉ€ เจฒเฉ‡เจ–เจ• เจฆเฉ€ เจจเจฟเฉฑเจœเฉ€ เจฐเจพเจ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจตเจพเจฐเฉฐเจŸเฉ€เจ†เจ‚ เจฆเจพ เจฌเฉ‡เจฆเจพเจ…เจตเจพ: เจฒเฉ‡เจ–เจพเจ‚ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพเจฌเฉฑเจง เจฒเฉœเฉ€ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจ…เจคเฉ‡ เจธเจนเฉ€ เจตเจฐเจฃเจจ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค "AS IS" เจจเจนเฉ€เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพเฅค
เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ€ เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ,
เจฆเฉ‚เจœเจพ, เจ‡เฉฑเจ• เจ…เจธเจฒเฉ€ เจ—เจพเจนเจ• เจฆเฉ‡ เจ‰เจคเจชเจพเจฆเจจ เจฆเฉ‡ เจ…เจงเจพเจฐ เจจเจพเจฒ เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจธเจฌเฉฐเจงเจพเจ‚ เจฆเฉ‡ เจ•เจพเจฐเจจ.
เจ‡เจธ เจฒเจˆ, เจฒเฉ‡เจ–เจพเจ‚ เจตเจฟเฉฑเจš เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจตเจฟเจšเจพเจฐ เจ…เจคเฉ‡ เจตเจฐเจฃเจจ เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃเจ—เฉ‡เฅค
เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจธเจฟเจธเจŸเจฎ GitHub 'เจคเฉ‡ เจชเฉ‹เจธเจŸ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจฆเฉ‡ เจชเฉฑเจงเจฐ เจคเฉฑเจ• เจตเจงเฉ‡เจ—เจพ, เจœเจพเจ‚ เจธเจผเจพเจ‡เจฆ เจจเจนเฉ€เจ‚เฅค เจธเจฎเจพเจ‚ เจฆเฉฑเจธเฉ‡เจ—เจพเฅค

เจ•เจนเจพเจฃเฉ€ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค - "เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฏเจพเจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจญ เจ•เจฟเจตเฉ‡เจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ† เจธเฉ€".
เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจ•เฉ€ เจนเฉ‹เจ‡เจ†, เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš - "PostgreSQL เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจœเฉ‹เจ‚ เจธเฉฐเจธเจฒเฉ‡เจธเจผเจฃยป

เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธ เจธเจญ เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ?

เจ–เฉˆเจฐ, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเจพเจ‚ เจ•เจฟ เจฐเจฟเจŸเจพเจ‡เจฐเจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฆเจฟเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจจเจพ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เฅค
เจฆเฉ‚เจœเจพ, เจœเฉ‹ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ‰เจธ เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจจเจพเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เจˆ เจตเจพเจฐ เจฎเฉˆเจ‚ เจ‰เจฒเจเจฃ เจตเจฟเจš เจชเฉˆ เจœเจพเจ‚เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉเจ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจญเฉเฉฑเจฒ เจœเจพเจ‚เจฆเจพ เจนเจพเจ‚.

เจ–เฉˆเจฐ, เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเจธเฉ‡ เจฒเจˆ เจ•เฉฐเจฎ เจ† เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจชเจนเฉ€เจ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจ–เฉ‹เจœเจฃ เจ…เจคเฉ‡ เจฐเฉ‡เจ• เจ‡เจ•เฉฑเจ เจพ เจจเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจ†เจชเจฃเฉ‡ เจ•เจฐเจฎ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเฉ‹ (เจ–เจฌเจฐเฉ‹เจต เจฆเฉ‡ เจจเจนเฉ€เจ‚)เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจš เจธเจญ เจคเฉ‹เจ‚ เจ•เฉ€เจฎเจคเฉ€ เจšเฉ€เจœเจผ เจตเจฟเจšเจพเจฐ เจนเจจเฅค เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจตเจฟเจšเจพเจฐ เจฒเฉฑเจญเจฃเจพ เจนเฉˆ. เจชเจฐ เจ•เจฟเจธเฉ‡ เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจนเจ•เฉ€เจ•เจค เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ เจ‡เฉฑเจ• เจจเจฟเจฐเฉ‹เจฒ เจคเจ•เจจเฉ€เจ•เฉ€ เจธเจตเจพเจฒ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจ†เจ“, เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ...

เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจ—เจ เจจ.

เจ‰เจชเจฒเฉฑเจฌเจง:

PostgreSQL(10.5) เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ, เจฎเจฟเจธเจผเจฐเจค เจฒเฉ‹เจก เจ•เจฟเจธเจฎ (OLTP+DSS), เจฎเฉฑเจงเจฎ-เจนเจฒเจ•เจพ เจฒเฉ‹เจก, AWS เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเฉˆเฅค
เจ•เฉ‹เจˆ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ; เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ‡เฉฑเจ• เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจฎเจฟเจ†เจฐเฉ€ AWS เจธเจพเจงเจจเจพเจ‚ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ:

เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจ…เจคเฉ‡ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเฉ‹, เจญเจพเจฐเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจชเฉเจฐเจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเฉฑเจญเฉ‹ เจ…เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹เฅค

เจนเฉฑเจฒ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเจพ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃ-เจชเจ›เจพเจฃ เจœเจพเจ‚ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ

เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจ†เจ“ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจฒเจˆ เจฒเจพเจญเจพเจ‚ เจ…เจคเฉ‡ เจจเฉเจ•เจธเจพเจจเจพเจ‚ เจฆเฉ‡ เจคเฉเจฒเจจเจพเจคเจฎเจ• เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ€เจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจœเจฟเจนเฉœเฉ‡ เจธเจŸเจพเจซเจฟเฉฐเจ— เจ…เจจเฉเจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ‡เจธเจฆเฉ‡ เจนเฉฑเจ•เจฆเจพเจฐ เจนเจจ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจญเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ.

เจตเจฟเจ•เจฒเจช 1 - "เจฎเฉฐเจ— 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ"

เจ…เจธเฉ€เจ‚ เจธเจญ เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡ เจ—เจพเจนเจ• เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจœเจพเจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจคเฉ‹เจ‚ เจธเฉฐเจคเฉเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจน เจกเฉ€เจฌเฉ€เจ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจˆ-เจฎเฉ‡เจฒ เจฆเฉเจ†เจฐเจพ เจœเจพเจ‚ เจŸเจฟเจ•เจŸ เจŸเจฐเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ˜เจŸเจจเจพ เจฌเจฃเจพ เจ•เฉ‡ เจธเฉ‚เจšเจฟเจค เจ•เจฐเฉ‡เจ—เจพเฅค
เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ, เจจเฉ‹เจŸเฉ€เจซเจฟเจ•เฉ‡เจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจธเจฎเจเฉ‡เจ—เจพ, เจ•เฉ‹เจˆ เจนเฉฑเจฒ เจชเฉ‡เจธเจผ เจ•เจฐเฉ‡เจ—เจพ เจœเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจฌเฉˆเจ• เจฌเจฐเจจเจฐ 'เจคเฉ‡ เจฐเฉฑเจ–เฉ‡เจ—เจพ, เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจธเจญ เจ•เฉเจ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉฑเจฒ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉเจนเจพเจ‚, เจธเจญ เจ•เฉเจ เจœเจฒเจฆเฉ€ เจนเฉ€ เจญเฉเฉฑเจฒ เจœเจพเจตเฉ‡เจ—เจพ.
เจœเจฟเฉฐเจœเจฐเจฌเฉˆเฉฑเจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ, เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจฌเฉฐเจชเจฐเจœเจฟเฉฐเจœเจฐเจฌเฉเจฐเฉ‡เจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ:
1. เจตเจพเจงเฉ‚ เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค
2. เจนเจฎเฉ‡เจธเจผเจพ เจฌเจนเจพเจจเฉ‡ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจชเฉ‡เจš เจ•เจฐเจจ เจฆเจพ เจฎเฉŒเจ•เจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ.
3. เจฌเจนเฉเจค เจธเจพเจฐเจพ เจธเจฎเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจฎเจฐเจœเจผเฉ€ เจจเจพเจฒ เจ–เจฐเจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจเฉเจฐเฉœเฉ€เจ†เจ‚:
1. เจœเจฒเจฆเฉ€ เจœเจพเจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจ—เจพเจนเจ• เจ‡เจธ เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจš เจนเฉ‹เจ‚เจฆ เจ…เจคเฉ‡ เจธเจฐเจต เจตเจฟเจ†เจชเจ• เจจเจฟเจ†เจ‚ เจฆเฉ‡ เจคเฉฑเจค เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจตเจพเจฐ เจซเจฟเจฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจคเฉ‹เจ‚ เจ‡เจน เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เฉ‡เจ—เจพ - เจฎเฉˆเจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเจพ เจชเฉˆเจธเจพ เจ•เจฟเจ‰เจ‚ เจ…เจฆเจพ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚? เจจเจคเฉ€เจœเจพ เจนเจฎเฉ‡เจธเจผเจพ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจ‡เจ•เฉ‹ เจธเจตเจพเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ—เจพเจนเจ• เจ•เจฆเฉ‹เจ‚ เจฌเฉ‹เจฐ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ…เจฒเจตเจฟเจฆเจพ เจฒเจนเจฟเจฐเจพเจเจ—เจพ. เจ…เจคเฉ‡ เจซเฉ€เจกเจฐ เจ–เจพเจฒเฉ€ เจฐเจนเฉ‡เจ—เจพเฅค เจ‡เจน เจ‰เจฆเจพเจธ เจนเฉˆ.
2. เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจตเจฟเจ•เจพเจธ - เจœเจผเฉ€เจฐเฉ‹.
3. เจ•เฉฐเจฎ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจฒเฉ‹เจก เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเฉเจธเจผเจ•เจฒเจพเจ‚

เจตเจฟเจ•เจฒเจช 2- "เจŸเฉˆเจ‚เจฌเฉ‹เจฐเฉ€เจจ เจจเจพเจฒ เจจเฉฑเจšเจฃเจพ, เจญเจพเจซ เจฒเฉˆเจฃเจพ เจ…เจคเฉ‡ เจœเฉเฉฑเจคเฉ€เจ†เจ‚ เจชเจพเจ‰เจฃเจพ"

เจชเฉˆเจฐเจพ 1-เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเจญ เจ•เฉเจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจพเจ‚เจ—เฉ‡. เจ…เจธเฉ€เจ‚ เจกเฉ‡เจŸเจพ เจกเจฟเจ•เจธเจผเจจเจฐเฉ€ เจ…เจคเฉ‡ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจฆเฉเจฐเจฟเจธเจผเจพเจ‚ เจฒเจˆ เจนเจฐ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจธเจตเจพเจฒเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจนเจฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ•เจพเจŠเจ‚เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจŸเฉ‡เจฌเจฒ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจธเฉ‚เจšเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเฉเฉฐเจฆเจฐ เจœเจพเจ‚ เจ‡เฉฐเจจเฉ‡ เจธเฉเฉฐเจฆเจฐ เจ—เฉเจฐเจพเจซเจผ, เจŸเฉ‡เจฌเจฒ, เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจนเจจ. เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจนเฉ‹เจฐ, เจนเฉ‹เจฐ.
เจชเฉˆเจฐเจพ 2-เจ…เจธเฉ€เจ‚ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธ เจธเจญ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค
เจชเฉˆเจฐเจพ 3-เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ–เจพเจธ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจคเจฟเจ†เจฐ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ - "เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ•เจฟเจตเฉ‡เจ‚ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค"
เจชเฉˆเจฐเจพ 4-เจ—เฉเจฐเจพเจนเจ•, เจ—เฉเจฐเจพเจซเจพเจ‚ เจ…เจคเฉ‡ เจธเฉฐเจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจ‡เจน เจธเจพเจฐเฉ€ เจธเจผเจพเจจ เจตเฉ‡เจ– เจ•เฉ‡, เจ‡เฉฑเจ• เจฌเจšเจ•เจพเจจเจพ, เจญเฉ‹เจฒเฉ‡ เจญเจฐเฉ‹เจธเฉ‡ เจตเจฟเฉฑเจš เจนเฉˆ - เจนเฉเจฃ เจธเจญ เจ•เฉเจ เจธเจพเจกเฉ‡ เจฒเจˆ เจœเจฒเจฆเฉ€ เจนเฉ€ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพเฅค เจ…เจคเฉ‡, เจ‰เจน เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจ…เจคเฉ‡ เจฆเจฐเจฆ เจฐเจนเจฟเจค เจ†เจชเจฃเฉ‡ เจตเจฟเฉฑเจคเฉ€ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจนเจฟเฉฑเจธเจพ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ. เจชเฉเจฐเจฌเฉฐเจงเจจ เจจเฉ‚เฉฐ เจตเฉ€ เจญเจฐเฉ‹เจธเจพ เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจฒเฉ‹เจก เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆเฅค
เจชเฉˆเจฐเจพ 5- เจจเจฟเจฏเจฎเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฆเจฎ 1 เจฆเฉเจนเจฐเจพเจ“เฅค
เจœเจฟเฉฐเจœเจฐเจฌเฉˆเฉฑเจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ, เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจฌเฉฐเจชเจฐเจœเจฟเฉฐเจœเจฐเจฌเฉเจฐเฉ‡เจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ:
1. เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐเจพเจ‚ เจฆเจพ เจœเฉ€เจตเจจ เจธเจพเจฆเจพ, เจ…เจจเฉเจฎเจพเจจ เจฒเจ—เจพเจ‰เจฃ เจฏเฉ‹เจ— เจ…เจคเฉ‡ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจจเจพเจฒ เจญเจฐเจชเฉ‚เจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจธเจญ เจ•เฉเจ เจ—เฉ‚เฉฐเจœ เจฐเจฟเจนเจพ เจนเฉˆ, เจนเจฐ เจ•เฉ‹เจˆ เจตเจฟเจ…เจธเจค เจนเฉˆเฅค
2. เจ—เจพเจนเจ• เจฆเฉ€ เจœเจผเจฟเฉฐเจฆเจ—เฉ€ เจตเฉ€ เจฎเจพเฉœเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ - เจ‰เจธเจจเฉ‚เฉฐ เจนเจฎเฉ‡เจธเจผเจพ เจฏเจ•เฉ€เจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจธเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจธเจฌเจฐ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ…เจคเฉ‡ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ‡เจน เจฌเจฟเจนเจคเจฐ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจฐเจฟเจนเจพ, เจ เฉ€เจ• เจนเฉˆ, เจธเฉฐเจธเจพเจฐ เจฌเฉ‡เจ‡เจจเจธเจพเจซเจผเฉ€ เจนเฉˆ, เจ…เจ—เจฒเฉ‡ เจœเจจเจฎ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹เจตเฉ‹เจ—เฉ‡.
เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจเฉเจฐเฉœเฉ€เจ†เจ‚:
1. เจœเจฒเจฆเฉ€ เจœเจพเจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจธเฉ‡เจตเจพ เจฆเจพ เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ เจชเฉเจฐเจฆเจพเจคเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‹ เจ‰เจนเฉ€ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ, เจชเจฐ เจฅเฉ‹เฉœเจพ เจธเจธเจคเจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจจเจคเฉ€เจœเจพ เจ‰เจนเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจนเฉ‹เจฐ เจญเฉเจ—เจคเจพเจจ เจ•เจฟเจ‰เจ‚ เจ•เจฐเฉ‹เฅค เจœเจฟเจธ เจจเจพเจฒ เจซเจฟเจฐ เจคเฉ‹เจ‚ เจซเฉ€เจกเจฐ เจ—เจพเจ‡เจฌ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค
2. เจ‡เจน เจฌเฉ‹เจฐเจฟเฉฐเจ— เจนเฉˆเฅค เจ•เฉ‹เจˆ เจตเฉ€ เจ…เจฐเจฅเจนเฉ€เจฃ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจ•เจฟเฉฐเจจเฉ€ เจฌเฉ‹เจฐเจฟเฉฐเจ— เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค
3. เจชเจฟเจ›เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ•เฉ‹เจˆ เจตเจฟเจ•เจพเจธ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจชเจฐ เจ‡เฉฑเจ• เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจฒเจˆ, เจจเจจเฉเจ•เจธเจพเจจ เจ‡เจน เจนเฉˆ เจ•เจฟ, เจชเจนเจฟเจฒเฉ‡ เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจ‰เจฒเจŸ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเจ—เจพเจคเจพเจฐ เจ‡เฉฑเจ• IBD เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆเฅค เจœเจฟเจธ เจจเฉ‚เฉฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ…เจœเจผเฉ€เจœเจผ เจฆเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจฒเจˆ เจ–เจฐเจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจฆเฉ€ เจฆเฉ‡เจ–เจญเจพเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡, เจ•เฉ‹เจˆ เจตเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจฌเจพเจฐเฉ‡ เจ•เฉ‹เจˆ เจจเจฟเฉฐเจฆเจฟเจ† เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ.

เจตเจฟเจ•เจฒเจช 3 - เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจพเจˆเจ•เจฒ เจฆเฉ€ เจ•เจพเจข เจ•เฉฑเจขเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‡เจธเจจเฉ‚เฉฐ เจ–เจฐเฉ€เจฆเจฃ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ‡เจน เจฌเฉ‡เจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจฆเฉ‚เจœเฉ€เจ†เจ‚ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจฆเฉ‡ เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจฌเฉ€เจ…เจฐ เจฆเฉ‡ เจจเจพเจฒ เจชเฉ€เจœเจผเจพ เจ–เจพเจ‚เจฆเฉ‡ เจนเจจ (เจ“เจน, 90 เจฆเฉ‡ เจฆเจนเจพเจ•เฉ‡ เจตเจฟเฉฑเจš เจธเฉ‡เจ‚เจŸ เจชเฉ€เจŸเจฐเจธเจฌเจฐเจ— เจฆเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฆเจฟเจจ)เฅค เจ†เจ“ เจจเจฟเจฐเฉ€เจ–เจฃ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ€เจ เจœเฉ‹ เจฌเจฃเจพเจ เจ—เจ เจนเจจ, เจกเฉ€เจฌเฉฑเจ— เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉ‹เจฒเจฃ เจตเจพเจฒเฉ‡ เจฒเจพเจญ (เจ เฉ€เจ• เจนเฉˆ, เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเจฟเจฐเจœเจฃเจนเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ)เฅค
เจœเจฟเฉฐเจœเจฐเจฌเฉˆเฉฑเจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ, เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจฌเฉฐเจชเจฐเจœเจฟเฉฐเจœเจฐเจฌเฉเจฐเฉ‡เจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ:
1. เจ•เจฟเจธเฉ‡ เจ…เจœเจฟเจนเฉ€ เจšเฉ€เจœเจผ เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจฃ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ–เฉ‹เจœเฉ€ เจœเจพ เจšเฉเฉฑเจ•เฉ€ เจนเฉˆ. เจ‡เจธ เจจเฉ‚เฉฐ เจฒเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจตเจฐเจค.
2. เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฎเฉ‚เจฐเจ–เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚ เจฒเจฟเจ–เฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ‰เจน เจฌเฉ‡เจธเจผเจ•, เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเจจเฅค
3. เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจธเจฟเจธเจŸเจฎ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเจพเจญเจฆเจพเจ‡เจ• เจซเจฟเจฒเจŸเจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค
เจœเจผเจ–เจฎ เจ…เจคเฉ‡ เจเฉเจฐเฉœเฉ€เจ†เจ‚:
1. เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจ‡เฉฑเจ• เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฆเฉ‡ เจ‰เจคเจชเจพเจฆ เจฆเจพ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉˆเฅค เจœเจพเจ‚ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพเฅค
2. เจ—เจพเจนเจ• เจจเฉ‚เฉฐ เจ•เฉเจ เจ–เจฐเฉ€เจฆเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจฌเจพเจฐเฉ‡ เจฏเจ•เฉ€เจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‰เจน เจธเจฎเจเจฃเจพ เจจเจนเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจฒ เจฒเจˆ เจฌเจœเจŸ เจจเฉ‚เฉฐ เจฎเจจเจœเจผเฉ‚เจฐเฉ€ เจฆเฉ‡ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจนเฉˆ เจ…เจคเฉ‡ เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจตเฉ‡เจ—เจพเฅค เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจธเจฐเฉ‹เจค เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ–เจพเจธ เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‰เจน. เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจญเฉเจ—เจคเจพเจจ, เจญเฉเจ—เจคเจพเจจ เจ…เจคเฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจญเฉเจ—เจคเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ—เจพเจนเจ• เจ•เฉฐเจœเฉ‚เจธ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจœเฉ€เจตเจจ เจฆเจพ เจ†เจฆเจฐเจธเจผ เจนเฉˆเฅค

เจ•เฉ€ เจ•เจฐเจจเจพ เจนเฉˆ - Chernyshevsky? เจคเฉเจนเจพเจกเจพ เจธเจตเจพเจฒ เจฌเจนเฉเจค เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆเฅค (เจจเจพเจฒ)

เจ‡เจธ เจ–เจพเจธ เจ•เฉ‡เจธ เจ…เจคเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจตเฉฑเจ–เจฐเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ - เจ†เจ‰ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจฌเจฃเจพเจˆเจเฅค
PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—
เจ–เฉˆเจฐ, เจ‡เฉฑเจ• เจธเจฟเจธเจŸเจฎ เจจเจนเฉ€เจ‚, เจฌเฉ‡เจธเจผเจ•, เจธเจผเจฌเจฆ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจ…เจฐเจฅเจพเจ‚ เจตเจฟเฉฑเจš, เจ‡เจน เจฌเจนเฉเจค เจ‰เฉฑเจšเจพ เจ…เจคเฉ‡ เจนเฉฐเจ•เจพเจฐเฉ€ เจนเฉˆ, เจชเจฐ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€เจ†เจ‚ เจ˜เจŸเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจนเฉ‹เจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเฉ‹เฅค เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจจเจพ เจฒเฉฑเจญเจฃ เจฒเจˆ - "เจ‰เฉฑเจฅเฉ‡ เจœเจพเจ“, เจฎเฉˆเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจ•เจฟเฉฑเจฅเฉ‡, เจ•เฉเจ เจฒเฉฑเจญเฉ‹, เจฎเฉˆเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเจคเจพ เจ•เจฟ เจ•เฉ€."

เจ‡เจธ เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจ…เจคเฉ‡ เจจเฉเจ•เจธเจพเจจ เจ•เฉ€ เจนเจจ:

เจชเฉเจฐเฉ‹:
1. เจ‡เจน เจฆเจฟเจฒเจšเจธเจช เจนเฉˆเฅค เจ–เฉˆเจฐ, เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‡เจน เจจเจฟเจฐเฉฐเจคเจฐ "เจธเฉฐเจ˜เจฃ เจกเฉ‡เจŸเจพเจซเจพเจˆเจฒ, เจŸเฉ‡เจฌเจฒเจธเจชเฉ‡เจธ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ, เจ†เจฆเจฟ" เจจเจพเจฒเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจฆเจฟเจฒเจšเจธเจช เจนเฉˆ.
2. เจ‡เจน เจจเจตเฉ‡เจ‚ เจนเฉเจจเจฐ เจ…เจคเฉ‡ เจจเจตเฉ‡เจ‚ เจตเจฟเจ•เจพเจธ เจนเจจเฅค เจœเฉ‹, เจœเจฒเจฆเฉ€ เจœเจพเจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฒเจพเจ‡เจ• เจœเจฟเฉฐเจœเจฐเจฌเฉเจฐเฉ‡เจก เจ…เจคเฉ‡ เจกเฉ‹เจจเจŸเจธ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค
เจจเฉเจ•เจธเจพเจจ:
1. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค เจธเจ–เจผเจค เจฎเจฟเจนเจจเจค.
2. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเจฟเจฏเจฎเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจ—เจคเฉ€เจตเจฟเจงเฉ€เจ†เจ‚ เจฆเฉ‡ เจ…เจฐเจฅ เจ…เจคเฉ‡ เจธเฉฐเจญเจพเจตเจจเจพเจตเจพเจ‚ เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค
3. เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจฆเฉ€ เจ•เฉเจฐเจฌเจพเจจเฉ€ เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เฉฑเจ• เจ‡เฉฐเจœเฉ€เจจเฉ€เจ…เจฐ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจ‡เฉฑเจ•เฉ‹ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค - เจธเจฎเจพเจ‚ - เจฌเฉเจฐเจนเจฟเจฎเฉฐเจก เจฆเฉเจ†เจฐเจพ เจธเฉ€เจฎเจฟเจค เจนเฉˆเฅค
4. เจธเจญ เจคเฉ‹เจ‚ เจญเฉˆเฉœเฉ€ เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจ•เฉ‹เจเจพ เจšเฉ€เจœเจผ - เจจเจคเฉ€เจœเจพ เจฌเจ•เจตเจพเจธ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ "เจšเฉ‚เจนเจพ เจจเจนเฉ€เจ‚, เจกเฉฑเจกเฉ‚ เจจเจนเฉ€เจ‚, เจชเจฐ เจ‡เฉฑเจ• เจ…เจฃเจœเจพเจฃ เจœเจพเจจเจตเจฐเฅค"

เจœเฉ‹ เจœเฉ‹เจ–เจฎ เจจเจนเฉ€เจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจ‰เจน เจธเจผเฉˆเจ‚เจชเฉ‡เจจ เจจเจนเฉ€เจ‚ เจชเฉ€เจ‚เจฆเฉ‡เฅค
เจ‡เจธ เจฒเจˆ - เจฎเจœเจผเฉ‡เจฆเจพเจฐ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ.

เจ†เจฎ เจตเจฟเจšเจพเจฐ - เจฏเฉ‹เจœเจจเจพเจฌเฉฑเจง

PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—
(เจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจฒเจฟเจ† เจ—เจฟเจ† เจšเจฟเฉฑเจคเจฐ ยซPostgreSQL เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจตเจœเฉ‹เจ‚ เจธเฉฐเจธเจฒเฉ‡เจธเจผเจฃร‚ ยป)

เจตเจฟเจ†เจ–เจฟเจ†:

  • เจฎเจฟเจ†เจฐเฉ€ PostgreSQL เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ "pg_stat_statements" เจŸเฉ€เจšเฉ‡ เจฆเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค
  • เจจเจฟเจ—เจฐเจพเจจเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจชเฉœเจพเจ… 'เจคเฉ‡ pg_stat_statements เจ‡เจคเจฟเจนเจพเจธ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจธเฉ‡เจตเจพ เจŸเฉ‡เจฌเจฒเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค
  • เจฎเจพเจจเฉ€เจŸเจฐเจฟเฉฐเจ— เจนเฉ‹เจธเจŸ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจตเจฟเฉฑเจš เจŸเจฟเจ•เจŸ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ˜เจŸเจจเจพเจตเจพเจ‚ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฒเจˆ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจธเฉ‡เจตเจพ เจŸเฉ‡เจฌเจฒ

เจชเจนเจฟเจฒเจพเจ‚, เจ‡เฉฑเจ• เจฏเฉ‹เจœเจจเจพเจฌเฉฑเจง เจธเจฐเจฒ ERD, เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ•เฉ€ เจนเฉ‹เจ‡เจ†:
PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—
เจŸเฉ‡เจฌเจฒ เจฆเจพ เจธเฉฐเจ–เฉ‡เจช เจตเฉ‡เจฐเจตเจพเจ…เฉฐเจคเจฎ เจชเฉเจ†เจ‡เฉฐเจŸ - เจนเฉ‹เจธเจŸ, เจ‰เจฆเจพเจนเจฐเจฃ เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเจพ เจฌเจฟเฉฐเจฆเฉ‚
เจกเจพเจŸเจพเจฌเฉ‡เจธ - เจกเจพเจŸเจพเจฌเฉ‡เจธ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ
pg_stat_history - เจŸเจพเจฐเจ—เฉ‡เจŸ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ pg_stat_statements เจฆเฉเจฐเจฟเจธเจผ เจฆเฉ‡ เจ…เจธเจฅเจพเจˆ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ‡เจคเจฟเจนเจพเจธเจ• เจธเจพเจฐเจฃเฉ€
metric_glossary - เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเจพ เจธเจผเจฌเจฆเจ•เฉ‹เจธเจผ
metric_config - เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ
เจฎเฉ€เจŸเฉเจฐเจฟเจ• - เจฌเฉ‡เจจเจคเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจ–เจพเจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ• เจœเจฟเจธเจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆ
metric_alert_history - เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ
log_query โ€” AWS เจคเฉ‹เจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ€ PostgreSQL เจฒเฉŒเจ— เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจชเจพเจฐเจธ เจ•เฉ€เจคเฉ‡ เจฐเจฟเจ•เจพเจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจธเจพเจฐเจฃเฉ€
เจฌเฉ‡เจธเจฒเจพเจˆเจจ โ€” เจ…เจงเจพเจฐ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฐเจคเฉ‡ เจ—เจ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจฎเจพเจชเจฆเฉฐเจก
เจšเฉˆเจ• เจชเฉเจ†เจ‡เฉฐเจŸ โ€” เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ
checkpoint_alert_history - เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเจฟเจนเจค เจœเจพเจ‚เจš เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเจพ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจ‡เจคเจฟเจนเจพเจธ
pg_stat_db_queries - เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจธเฉ‡เจตเจพ เจธเจพเจฐเจฃเฉ€
เจธเจฐเจ—เจฐเจฎเฉ€_เจฒเจพเจ— โ€” เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจฒเฉŒเจ— เจธเจฐเจตเจฟเจธ เจŸเฉ‡เจฌเจฒ
trap_oid โ€” เจŸเจฐเฉˆเจช เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจธเจฐเจตเจฟเจธ เจŸเฉ‡เจฌเจฒ

เจชเฉœเจพเจ… 1 - เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฌเจพเจฐเฉ‡ เจ…เฉฐเจ•เฉœเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹

เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ…เฉฐเจ•เฉœเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ pg_stat_history
pg_stat_history เจธเจพเจฐเจฃเฉ€ เจฌเจฃเจคเจฐ

                                          เจธเจพเจฐเจฃเฉ€ "public.pg_stat_history" เจ•เจพเจฒเจฎ | เจ•เจฟเจธเจฎ | เจธเฉ‹เจงเจ•--------------------------------------------------------------- -------------------------------------------------------- เจ†เจˆเจกเฉ€ | เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• | null default nextval('pg_stat_history_id_seq'::regclass) snapshot_timestamp | เจŸเจพเจˆเจฎ เจœเจผเฉ‹เจจ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจŸเจพเจˆเจฎเจธเจŸเฉˆเจ‚เจช | database_id | เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• | dbid | oid | userid | oid | queryid | bigint | เจธเจตเจพเจฒ | เจŸเฉˆเจ•เจธเจŸ | เจ•เจพเจฒ | bigint | เจ•เฉเฉฑเจฒ_เจธเจฎเจพเจ‚ | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | min_time | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | เจ…เจงเจฟเจ•เจคเจฎ_เจธเจฎเจพเจ‚ | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | เจฎเจคเจฒเจฌ_เจธเจฎเจพเจ‚ | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | stddev_time | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | เจ•เจคเจพเจฐเจพเจ‚ | bigint | shared_blks_hit | bigint | shared_blks_read | bigint | shared_blks_dirtied | bigint | shared_blks_written | bigint | local_blks_hit | bigint | local_blks_read | bigint | local_blks_dirtied | bigint | local_blks_written | bigint | temp_blks_read | bigint | temp_blks_written | bigint | blk_read_time | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | blk_write_time | เจกเจฌเจฒ เจธเจผเฉเฉฑเจงเจคเจพ | เจฌเฉ‡เจธเจฒเจพเจˆเจจ_เจ†เจˆเจกเฉ€ | เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• | เจธเฉ‚เจšเจ•เจพเจ‚เจ•: "pg_stat_history_pkey" PRIMARY KEY, btree (id) "database_idx" btree (database_id) "queryid_idx" btree (queryid) "snapshot_timestamp_idx" btree (snapshot_timestamp) "เจตเจฟเจฆเฉ‡เจธเจผเฉ€-เจ•เฉเฉฐเจœเฉ€: IG_databaseKe" (IG_fdasaint FORE_KADASTRAINT) id) เจนเจตเจพเจฒเจพ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ (id ) เจกเจฟเจฒเฉ€เจŸ เจ•เฉˆเจธเจ•เฉ‡เจก 'เจคเฉ‡

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจธเจพเจฐเจฃเฉ€ เจธเจฟเจฐเจซเจผ เจธเฉฐเจšเจค เจฆเฉเจฐเจฟเจธเจผ เจกเฉ‡เจŸเจพ เจนเฉˆ pg_stat_statements เจŸเฉ€เจšเจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš.

เจ‡เจธ เจธเจพเจฐเจฃเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจธเฉŒเจ–เจพ เจนเฉˆ

pg_stat_history เจนเจฐ เจ˜เฉฐเจŸเฉ‡ เจฒเจˆ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจ…เฉฐเจ•เฉœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจเจ—เจพเฅค เจนเจฐ เจ˜เฉฐเจŸเฉ‡ เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš, เจธเจพเจฐเจฃเฉ€ เจจเฉ‚เฉฐ เจญเจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เฉฐเจ•เฉœเฉ‡ pg_stat_statements เจจเจพเจฒ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเฉ‹ pg_stat_statements_reset().
เจจเฉ‹เจŸ: 1 เจธเจ•เจฟเฉฐเจŸ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฆเฉ€ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจ…เจตเจงเฉ€ เจตเจพเจฒเฉ‡ เจธเจตเจพเจฒเจพเจ‚ เจฒเจˆ เจ…เฉฐเจ•เฉœเฉ‡ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค
pg_stat_history เจธเจพเจฐเจฃเฉ€ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

--pg_stat_history.sql
CREATE OR REPLACE FUNCTION pg_stat_history( ) RETURNS boolean AS $$
DECLARE
  endpoint_rec record ;
  database_rec record ;
  pg_stat_snapshot record ;
  current_snapshot_timestamp timestamp without time zone;
BEGIN
  current_snapshot_timestamp = date_trunc('minute',now());  
  
  FOR endpoint_rec IN SELECT * FROM endpoint 
  LOOP
    FOR database_rec IN SELECT * FROM database WHERE endpoint_id = endpoint_rec.id 
	  LOOP
	    
		RAISE NOTICE 'NEW SHAPSHOT IS CREATING';
		
		--Connect to the target DB	  
	    EXECUTE 'SELECT dblink_connect(''LINK1'',''host='||endpoint_rec.host||' dbname='||database_rec.name||' user=USER password=PASSWORD '')';
 
        RAISE NOTICE 'host % and dbname % ',endpoint_rec.host,database_rec.name;
		RAISE NOTICE 'Creating snapshot of pg_stat_statements for database %',database_rec.name;
		
		SELECT 
	      *
		INTO 
		  pg_stat_snapshot
	    FROM dblink('LINK1',
	      'SELECT 
	       dbid , SUM(calls),SUM(total_time),SUM(rows) ,SUM(shared_blks_hit) ,SUM(shared_blks_read) ,SUM(shared_blks_dirtied) ,SUM(shared_blks_written) , 
           SUM(local_blks_hit) , SUM(local_blks_read) , SUM(local_blks_dirtied) , SUM(local_blks_written) , SUM(temp_blks_read) , SUM(temp_blks_written) , SUM(blk_read_time) , SUM(blk_write_time)
	       FROM pg_stat_statements WHERE dbid=(SELECT oid from pg_database where datname=current_database() ) 
		   GROUP BY dbid
  	      '
	               )
	      AS t
	       ( dbid oid , calls bigint , 
  	         total_time double precision , 
	         rows bigint , shared_blks_hit bigint , shared_blks_read bigint ,shared_blks_dirtied bigint ,shared_blks_written	 bigint ,
             local_blks_hit	 bigint ,local_blks_read bigint , local_blks_dirtied bigint ,local_blks_written bigint ,
             temp_blks_read	 bigint ,temp_blks_written bigint ,
             blk_read_time double precision , blk_write_time double precision	  
	       );
		 
		INSERT INTO pg_stat_history
          ( 
		    snapshot_timestamp  ,database_id  ,
			dbid , calls  ,total_time ,
            rows ,shared_blks_hit  ,shared_blks_read  ,shared_blks_dirtied  ,shared_blks_written ,local_blks_hit , 	 	
            local_blks_read,local_blks_dirtied,local_blks_written,temp_blks_read,temp_blks_written, 	
            blk_read_time, blk_write_time 
		  )		  
	    VALUES
	      (
	       current_snapshot_timestamp ,
		   database_rec.id ,
	       pg_stat_snapshot.dbid ,pg_stat_snapshot.calls,
	       pg_stat_snapshot.total_time,
	       pg_stat_snapshot.rows ,pg_stat_snapshot.shared_blks_hit ,pg_stat_snapshot.shared_blks_read ,pg_stat_snapshot.shared_blks_dirtied ,pg_stat_snapshot.shared_blks_written , 
           pg_stat_snapshot.local_blks_hit , pg_stat_snapshot.local_blks_read , pg_stat_snapshot.local_blks_dirtied , pg_stat_snapshot.local_blks_written , 
	       pg_stat_snapshot.temp_blks_read , pg_stat_snapshot.temp_blks_written , pg_stat_snapshot.blk_read_time , pg_stat_snapshot.blk_write_time 	   
	      );		   
		  
        RAISE NOTICE 'Creating snapshot of pg_stat_statements for queries with min_time more than 1000ms';
	
        FOR pg_stat_snapshot IN
          --All queries with max_time greater than 1000 ms
	      SELECT 
	        *
	      FROM dblink('LINK1',
	        'SELECT 
	         dbid , userid ,queryid,query,calls,total_time,min_time ,max_time,mean_time, stddev_time ,rows ,shared_blks_hit ,
			 shared_blks_read ,shared_blks_dirtied ,shared_blks_written , 
             local_blks_hit , local_blks_read , local_blks_dirtied , 
			 local_blks_written , temp_blks_read , temp_blks_written , blk_read_time , 
			 blk_write_time
	         FROM pg_stat_statements 
			 WHERE dbid=(SELECT oid from pg_database where datname=current_database() AND min_time >= 1000 ) 
  	        '

	                  )
	        AS t
	         ( dbid oid , userid oid , queryid bigint ,query text , calls bigint , 
  	           total_time double precision ,min_time double precision	 ,max_time double precision	 , mean_time double precision	 ,  stddev_time double precision	 , 
	           rows bigint , shared_blks_hit bigint , shared_blks_read bigint ,shared_blks_dirtied bigint ,shared_blks_written	 bigint ,
               local_blks_hit	 bigint ,local_blks_read bigint , local_blks_dirtied bigint ,local_blks_written bigint ,
               temp_blks_read	 bigint ,temp_blks_written bigint ,
               blk_read_time double precision , blk_write_time double precision	  
	         )
	    LOOP
		  INSERT INTO pg_stat_history
          ( 
		    snapshot_timestamp  ,database_id  ,
			dbid ,userid  , queryid  , query  , calls  ,total_time ,min_time ,max_time ,mean_time ,stddev_time ,
            rows ,shared_blks_hit  ,shared_blks_read  ,shared_blks_dirtied  ,shared_blks_written ,local_blks_hit , 	 	
            local_blks_read,local_blks_dirtied,local_blks_written,temp_blks_read,temp_blks_written, 	
            blk_read_time, blk_write_time 
		  )		  
	      VALUES
	      (
	       current_snapshot_timestamp ,
		   database_rec.id ,
	       pg_stat_snapshot.dbid ,pg_stat_snapshot.userid ,pg_stat_snapshot.queryid,pg_stat_snapshot.query,pg_stat_snapshot.calls,
	       pg_stat_snapshot.total_time,pg_stat_snapshot.min_time ,pg_stat_snapshot.max_time,pg_stat_snapshot.mean_time, pg_stat_snapshot.stddev_time ,
	       pg_stat_snapshot.rows ,pg_stat_snapshot.shared_blks_hit ,pg_stat_snapshot.shared_blks_read ,pg_stat_snapshot.shared_blks_dirtied ,pg_stat_snapshot.shared_blks_written , 
           pg_stat_snapshot.local_blks_hit , pg_stat_snapshot.local_blks_read , pg_stat_snapshot.local_blks_dirtied , pg_stat_snapshot.local_blks_written , 
	       pg_stat_snapshot.temp_blks_read , pg_stat_snapshot.temp_blks_written , pg_stat_snapshot.blk_read_time , pg_stat_snapshot.blk_write_time 	   
	      );
		  
        END LOOP;

        PERFORM dblink_disconnect('LINK1');  
				
	  END LOOP ;--FOR database_rec IN SELECT * FROM database WHERE endpoint_id = endpoint_rec.id 
    
  END LOOP;

RETURN TRUE;  
END
$$ LANGUAGE plpgsql;

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฌเจพเจ…เจฆ pg_stat_history เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจŸเฉ‡เจฌเจฒ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจนเฉ‹เจตเฉ‡เจ—เจพ pg_stat_statements เจŸเฉ€เจšเจพ เจกเจพเจŸเจพเจฌเฉ‡เจธ.

เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—

เจธเจงเจพเจฐเจจ เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡, เจคเฉเจธเฉ€เจ‚ เจ•เจพเจซเจผเฉ€ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจ…เจคเฉ‡ เจฆเจฟเจฒเจšเจธเจช เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ‡เจ•เฉฑเจคเจฐ เจ•เฉ€เจคเจพ เจกเจพเจŸเจพ

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  database_id , 
  SUM(calls) AS calls ,SUM(total_time)  AS total_time ,
  SUM(rows) AS rows , SUM(shared_blks_hit)  AS shared_blks_hit,
  SUM(shared_blks_read) AS shared_blks_read ,
  SUM(shared_blks_dirtied) AS shared_blks_dirtied,
  SUM(shared_blks_written) AS shared_blks_written , 
  SUM(local_blks_hit) AS local_blks_hit , 
  SUM(local_blks_read) AS local_blks_read , 
  SUM(local_blks_dirtied) AS local_blks_dirtied , 
  SUM(local_blks_written)  AS local_blks_written,
  SUM(temp_blks_read) AS temp_blks_read, 
  SUM(temp_blks_written) temp_blks_written , 
  SUM(blk_read_time) AS blk_read_time , 
  SUM(blk_write_time) AS blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY database_id ;

DB เจธเจฎเจพเจ‚

to_char(เจ…เฉฐเจคเจฐเจพเจฒ '1 เจฎเจฟเจฒเฉ€เจธเจ•เจฟเฉฐเจŸ' * pg_total_stat_history_rec.total_time, 'HH24:MI:SS.MS')

I/O เจธเจฎเจพเจ‚

to_char(เจ…เฉฐเจคเจฐเจพเจฒ '1 เจฎเจฟเจฒเฉ€เจธเจ•เจฟเฉฐเจŸ' * ( pg_total_stat_history_rec.blk_read_time + pg_total_stat_history_rec.blk_write_time ), 'HH24:MI:SS.MS')

Total_time เจฆเฉเจ†เจฐเจพ TOP10 SQL

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  queryid , 
  SUM(calls) AS calls ,
  SUM(total_time)  AS total_time  	
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT 
GROUP BY queryid 
ORDER BY 3 DESC 
LIMIT 10
-------------------------------------------------- ----------------------------------- | เจ•เฉเฉฑเจฒ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจŸเจพเจˆเจฎ เจฆเฉเจ†เจฐเจพ TOP10 SQL | #| queryid| เจ•เจพเจฒ | เจ•เจพเจฒเจพเจ‚ %| เจ•เฉเฉฑเจฒ_เจธเจฎเจพเจ‚ (ms) | dbtime % +---------+------------+------------+------------+ -----------------------------------------------+------------ | 1| 821760255| 2| .00001|00:03:23.141( 203141.681 ms.)| 5.42 | 2| 4152624390| 2| .00001|00:03:13.929(193929.215 ms.)| 5.17 | 3| 1484454471| 4| .00001|00:02:09.129(129129.057 ms.)| 3.44 | 4| 655729273| 1| .00000|00:02:01.869(121869.981 ms.)| 3.25 | 5| 2460318461| 1| .00000|00:01:33.113(93113.835 ms.)| 2.48 | 6| 2194493487| 4| .00001|00:00:17.377(17377.868 ms.)| .46 | 7| 1053044345| 1| .00000|00:00:06.156(6156.352 ms.)| .16 | 8| 3644780286| 1| .00000|00:00:01.063(1063.830 ms.)| .03

เจ•เฉเฉฑเจฒ I/O เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ TOP10 SQL

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  queryid , 
  SUM(calls) AS calls ,
  SUM(blk_read_time + blk_write_time)  AS io_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY  queryid 
ORDER BY 3 DESC 
LIMIT 10
-------------------------------------------------- --------------------------------------------------- | เจ•เฉเฉฑเจฒ I/O เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ เจšเฉ‹เจŸเฉ€ เจฆเฉ‡ 10 SQL | #| queryid| เจ•เจพเจฒ | เจ•เจพเจฒเจพเจ‚ %| I/O เจธเจฎเจพเจ‚ (ms)|db I/O เจธเจฎเจพเจ‚ % +------+------------+----------+------ ----------------------------------------------------------------- ------ -- | 1| 4152624390| 2| .00001|00:08:31.616(511616.592 ms.)| 31.06 | 2| 821760255| 2| .00001|00:08:27.099(507099.036 ms.)| 30.78 | 3| 655729273| 1| .00000|00:05:02.209(302209.137 ms.)| 18.35 | 4| 2460318461| 1| .00000|00:04:05.981(245981.117 ms.)| 14.93 | 5| 1484454471| 4| .00001|00:00:39.144(39144.221 ms.)| 2.38 | 6| 2194493487| 4| .00001|00:00:18.182(18182.816 ms.)| 1.10 | 7| 1053044345| 1| .00000|00:00:16.611(16611.722 ms.)| 1.01 | 8| 3644780286| 1| .00000|00:00:00.436(436.205 ms.)| .03

เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ‡ เจ…เจงเจฟเจ•เจคเจฎ เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ TOP10 SQL

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  id AS snapshotid , 
  queryid , 
  snapshot_timestamp ,  
  max_time 
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
ORDER BY 4 DESC 
LIMIT 10

-------------------------------------------------- ------------------------------------------------------------------ | เจ…เจงเจฟเจ•เจคเจฎ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ เจšเฉ‹เจŸเฉ€ เจฆเฉ‡ 10 SQL | #| เจธเจจเฉˆเจชเจธเจผเจพเจŸ| เจธเจจเฉˆเจชเจธเจผเจพเจŸ ID| queryid| เจ…เจงเจฟเจ•เจคเจฎ_เจธเจฎเจพเจ‚ (เจฎเจฟ.) --+----------------------------------------- | 1| 05.04.2019/01/03 4169:655729273 | 00| 02| 01.869:121869.981:2 (04.04.2019 ms.) | 17| 00/4153/821760255 00:01| 41.570| 101570.841| 3:04.04.2019:16 (00 ms.) | 4146| 821760255/00/01 41.570:101570.841 | 4| 04.04.2019| 16:00:4144 (4152624390 ms.) | 00| 01/36.964/96964.607 5:04.04.2019 | 17| 00| 4151:4152624390:00(01 ms.) | 36.964| 96964.607/6/05.04.2019 10:00| 4188| 1484454471| 00:01:33.452(93452.150 ms.) | 7| 04.04.2019/17/00 4150:2460318461| 00| 01| 33.113:93113.835:8 (04.04.2019 ms.) | 15| 00/4140/1484454471 00:00| 11.892| 11892.302| 9:04.04.2019:16(00 ms.) | 4145| 1484454471/00/00 11.892:11892.302| 10| 04.04.2019| 17:00:4152 (1484454471 ms.) | 00| 00/11.892/11892.302 XNUMX:XNUMX | XNUMX| XNUMX| XNUMX:XNUMX:XNUMX (XNUMX ms.) | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX:XNUMX:XNUMX (XNUMX ms.)

เจธเจผเฉ‡เจ…เจฐเจก เจฌเจซเจฐ เจฐเฉ€เจก/เจฐเจพเจˆเจŸ เจฆเฉเจ†เจฐเจพ TOP10 SQL

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  id AS snapshotid , 
  queryid ,
  snapshot_timestamp , 
  shared_blks_read , 
  shared_blks_written 
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND
  ( shared_blks_read > 0 OR shared_blks_written > 0 )
ORDER BY 4 DESC  , 5 DESC 
LIMIT 10
-------------------------------------------------- ------------------------------------------------------------------ | เจธเจผเฉ‡เจ…เจฐเจก เจฌเจซเจฐ เจฐเฉ€เจก/เจฐเจพเจˆเจŸ เจฆเฉเจ†เจฐเจพ เจธเจฟเจ–เจฐ 10 SQL | #| เจธเจจเฉˆเจชเจธเจผเจพเจŸ| เจธเจจเฉˆเจชเจธเจผเจพเจŸ ID| queryid| เจธเจพเจ‚เจเฉ‡ เจฌเจฒเจพเจ• เจชเฉœเฉเจนเฉ‡ | เจธเจผเฉ‡เจ…เจฐเจก เจฌเจฒเจพเจ• เจฒเจฟเจ–เจฆเฉ‡ เจนเจจ +-------------------------------------------------- -------------------------+----------------------| 1| 04.04.2019/17/00 4153:821760255| 797308| 0| 2| 04.04.2019 | 16| 00/4146/821760255 797308:0 | 3| 05.04.2019| 01| 03 | 4169| 655729273/797158/0 4:04.04.2019 | 16| 00| 4144| 4152624390 | 756514| 0/5/04.04.2019 17:00 | 4151| 4152624390| 756514| 0 | 6| 04.04.2019/17/00 4150:2460318461| 734117| 0| 7| 04.04.2019 | 17| 00/4155/3644780286 52973:0| 8| 05.04.2019| 01| 03 | 4168| 1053044345/52818/0 9:04.04.2019| 15| 00| 4141 | 2194493487 | 52813| 0/10/04.04.2019 16:00 | 4147| 2194493487| 52813| 0 | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX| XNUMX | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX | XNUMX| XNUMX| XNUMX| XNUMX ------------------------------------------------- --------------------------------------------------------

เจ…เจงเจฟเจ•เจคเจฎ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจตเฉฐเจก เจฆเจพ เจนเจฟเจธเจŸเฉ‹เจ—เฉเจฐเจพเจฎ

เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚

SELECT  
  MIN(max_time) AS hist_min  , 
  MAX(max_time) AS hist_max , 
  (( MAX(max_time) - MIN(min_time) ) / hist_columns ) as hist_width
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT ;

SELECT 
  SUM(calls) AS calls
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND
  database_id =DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND 
  ( max_time >= hist_current_min AND  max_time < hist_current_max ) ;
|---------------------------------------------------------------- ---------------------------------------------------------------------------------- | MAX_TIME เจนเจฟเจธเจŸเฉ‹เจ—เฉเจฐเจพเจฎ | เจ•เฉเฉฑเจฒ เจ•เจพเจฒเจพเจ‚: 33851920 | MIN TIME: 00:00:01.063 | MAX TIME: 00:02:01.869 ------------------------------------------------------- ------------------------------------------------------------------ | เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฎเจฟเจ†เจฆ| เจ…เจงเจฟเจ•เจคเจฎ เจฎเจฟเจ†เจฆ| เจ•เจพเจฒเจพเจ‚ +----------------------------------------------- ---------------------+------------ | 00:00:01.063 (1063.830 ms.) | 00:00:13.144 (13144.445 ms.) | 9 | 00:00:13.144 (13144.445 ms.) | 00:00:25.225 (25225.060 ms.) | 0 | 00:00:25.225 (25225.060 ms.) | 00:00:37.305 (37305.675 ms.) | 0 | 00:00:37.305 (37305.675 ms.) | 00:00:49.386 (49386.290 ms.) | 0 | 00:00:49.386 (49386.290 ms.) | 00:01:01.466 (61466.906 ms.) | 0 | 00:01:01.466 (61466.906 ms.) | 00:01:13.547 (73547.521 ms.) | 0 | 00:01:13.547 (73547.521 ms.) | 00:01:25.628 (85628.136 ms.) | 0 | 00:01:25.628 (85628.136 ms.) | 00:01:37.708 (97708.751 ms.) | 4 | 00:01:37.708 (97708.751 ms.) | 00:01:49.789 (109789.366 ms.) | 2 | 00:01:49.789 (109789.366 ms.) | 00:02:01.869 (121869.981 ms.) | 0

เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจฆเฉเจ†เจฐเจพ TOP10 เจธเจจเฉˆเจชเจธเจผเจพเจŸ

เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚

--pg_qps.sql
--Calculate Query Per Second 
CREATE OR REPLACE FUNCTION pg_qps( pg_stat_history_id integer ) RETURNS double precision AS $$
DECLARE
 pg_stat_history_rec record ;
 prev_pg_stat_history_id integer ;
 prev_pg_stat_history_rec record;
 total_seconds double precision ;
 result double precision;
BEGIN 
  result = 0 ;
  
  SELECT *
  INTO pg_stat_history_rec
  FROM 
    pg_stat_history
  WHERE id = pg_stat_history_id ;

  IF pg_stat_history_rec.snapshot_timestamp IS NULL 
  THEN
    RAISE EXCEPTION 'ERROR - Not found pg_stat_history for id = %',pg_stat_history_id;
  END IF ;  
  
 --RAISE NOTICE 'pg_stat_history_id = % , snapshot_timestamp = %', pg_stat_history_id , 
 pg_stat_history_rec.snapshot_timestamp ;
  
  SELECT 
    MAX(id)   
  INTO
    prev_pg_stat_history_id
  FROM
    pg_stat_history
  WHERE 
    database_id = pg_stat_history_rec.database_id AND
	queryid IS NULL AND
	id < pg_stat_history_rec.id ;

  IF prev_pg_stat_history_id IS NULL 
  THEN
    RAISE NOTICE 'Not found previous pg_stat_history shapshot for id = %',pg_stat_history_id;
	RETURN NULL ;
  END IF;
  
  SELECT *
  INTO prev_pg_stat_history_rec
  FROM 
    pg_stat_history
  WHERE id = prev_pg_stat_history_id ;
  
  --RAISE NOTICE 'prev_pg_stat_history_id = % , prev_snapshot_timestamp = %', prev_pg_stat_history_id , prev_pg_stat_history_rec.snapshot_timestamp ;    

  total_seconds = extract(epoch from ( pg_stat_history_rec.snapshot_timestamp - prev_pg_stat_history_rec.snapshot_timestamp ));
  
  --RAISE NOTICE 'total_seconds = % ', total_seconds ;    
  
  --RAISE NOTICE 'calls = % ', pg_stat_history_rec.calls ;      
  
  IF total_seconds > 0 
  THEN
    result = pg_stat_history_rec.calls / total_seconds ;
  ELSE
   result = 0 ; 
  END IF;
   
 RETURN result ;
END
$$ LANGUAGE plpgsql;


SELECT 
  id , 
  snapshot_timestamp ,
  calls , 	
  total_time , 
  ( select pg_qps( id )) AS QPS ,
  blk_read_time ,
  blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND
  ( select pg_qps( id )) IS NOT NULL 
ORDER BY 5 DESC 
LIMIT 10
|---------------------------------------------------------------- ---------------------------------------------------------------------------------- | QueryPerSeconds เจจเฉฐเจฌเจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจšเฉ‹เจŸเฉ€ เจฆเฉ‡ 10 เจธเจจเฉˆเจชเจธเจผเจพเจŸ ------------------------------------------------------ -------------------------------------------------- -------------------------------------------------- | #| เจธเจจเฉˆเจชเจธเจผเจพเจŸ| เจธเจจเฉˆเจชเจธเจผเจพเจŸ ID| เจ•เจพเจฒ | เจ•เฉเฉฑเจฒ dbtime| QPS| I/O เจธเจฎเจพเจ‚| I/O เจธเจฎเจพเจ‚ % +------+---------+------------+------ ------------------------------------------- ---------------------------- +------------ | 1| 04.04.2019/20/04 4161:5758631 | 00| 06| 30.513:390513.926:1573.396 (00 ms.)| 00| 01.470:1470.110:376(2 ms.)| เฅฅเฉฉเฉญเฉฌเฅฅ 04.04.2019| 17/00/4149 3529197:00| 11| 48.830 | 708830.618:980.332:00(12 ms.)| 47.834 | 767834.052:108.324:3(04.04.2019 ms.)| 16 | 00| 4143/3525360/00 10:13.492 | 613492.351| 979.267| 00:08:41.396 (521396.555 ms.)| 84.988 | 4:04.04.2019:21(03 ms.)| 4163 | 2781536| 00/03/06.470 186470.979:785.745 | 00| 00| 00.249:249.865:134 (5 ms.)| 04.04.2019| 19:03:4159 (2890362 ms.) | เฅฅเฉงเฉฉเฉชเฅฅ 00| 03 16.784:196784.755 | 776.979 | 00 | 00:01.441:1441.386(732 ms.)| 6 | 04.04.2019:14:00 (4137 ms.)| .2397326 | 00| 04/43.033/283033.854 665.924:00| 00| 00.024| 24.505:009:7(04.04.2019 ms.)| 15| 00:4139:2394416(00 ms.)| .04 | 51.435| 291435.010/665.116/00 00:12.025| 12025.895 | 4.126| 8:04.04.2019:13(00 ms.)| 4135| 2373043:00:04(26.791 ms.)| 266791.988 | 659.179| 00 00:00.064 | 64.261| 024| 9:05.04.2019:01 (03 ms.)| 4167 | 4387191:00:06 (51.380 ms.) | .411380.293 | 609.332| 00/05/18.847 318847.407:77.507 | 10| 04.04.2019| 18:01:4157(1145596 ms.)| 00 | 01:19.217:79217.372(313.004 ms.)| 00 | 00| 01.319/1319.676/1.666 XNUMX:XNUMX | XNUMX| XNUMX| XNUMX:XNUMX:XNUMX(XNUMX ms.)| XNUMX | XNUMX:XNUMX:XNUMX (XNUMX ms.)| เฉง.เฉฌเฉฌเฉฌ

QueryPerSeconds เจ…เจคเฉ‡ I/O เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ˜เฉฐเจŸเฉ‡ เจฆเจพ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจ‡เจคเจฟเจนเจพเจธ

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  id , 
  snapshot_timestamp ,
  calls , 	
  total_time , 
  ( select pg_qps( id )) AS QPS ,
  blk_read_time ,
  blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
ORDER BY 2
|-----------------------------------------------------------------------------------------------
| HOURLY EXECUTION HISTORY  WITH QueryPerSeconds and I/O Time
-----------------------------------------------------------------------------------------------------------------------------------------------
| QUERY PER SECOND HISTORY
|    #|          snapshot| snapshotID|      calls|                      total dbtime|        QPS|                          I/O time| I/O time %
+-----+------------------+-----------+-----------+----------------------------------+-----------+----------------------------------+-----------
|    1|  04.04.2019 11:00|       4131|       3747|  00:00:00.835(       835.374 ms.)|      1.041|  00:00:00.000(          .000 ms.)|       .000
|    2|  04.04.2019 12:00|       4133|    1002722|  00:01:52.419(    112419.376 ms.)|    278.534|  00:00:00.149(       149.105 ms.)|       .133
|    3|  04.04.2019 13:00|       4135|    2373043|  00:04:26.791(    266791.988 ms.)|    659.179|  00:00:00.064(        64.261 ms.)|       .024
|    4|  04.04.2019 14:00|       4137|    2397326|  00:04:43.033(    283033.854 ms.)|    665.924|  00:00:00.024(        24.505 ms.)|       .009
|    5|  04.04.2019 15:00|       4139|    2394416|  00:04:51.435(    291435.010 ms.)|    665.116|  00:00:12.025(     12025.895 ms.)|      4.126
|    6|  04.04.2019 16:00|       4143|    3525360|  00:10:13.492(    613492.351 ms.)|    979.267|  00:08:41.396(    521396.555 ms.)|     84.988
|    7|  04.04.2019 17:00|       4149|    3529197|  00:11:48.830(    708830.618 ms.)|    980.332|  00:12:47.834(    767834.052 ms.)|    108.324
|    8|  04.04.2019 18:01|       4157|    1145596|  00:01:19.217(     79217.372 ms.)|    313.004|  00:00:01.319(      1319.676 ms.)|      1.666
|    9|  04.04.2019 19:03|       4159|    2890362|  00:03:16.784(    196784.755 ms.)|    776.979|  00:00:01.441(      1441.386 ms.)|       .732
|   10|  04.04.2019 20:04|       4161|    5758631|  00:06:30.513(    390513.926 ms.)|   1573.396|  00:00:01.470(      1470.110 ms.)|       .376
|   11|  04.04.2019 21:03|       4163|    2781536|  00:03:06.470(    186470.979 ms.)|    785.745|  00:00:00.249(       249.865 ms.)|       .134
|   12|  04.04.2019 23:03|       4165|    1443155|  00:01:34.467(     94467.539 ms.)|    200.438|  00:00:00.015(        15.287 ms.)|       .016
|   13|  05.04.2019 01:03|       4167|    4387191|  00:06:51.380(    411380.293 ms.)|    609.332|  00:05:18.847(    318847.407 ms.)|     77.507
|   14|  05.04.2019 02:03|       4171|     189852|  00:00:10.989(     10989.899 ms.)|     52.737|  00:00:00.539(       539.110 ms.)|      4.906
|   15|  05.04.2019 03:01|       4173|       3627|  00:00:00.103(       103.000 ms.)|      1.042|  00:00:00.004(         4.131 ms.)|      4.010
|   16|  05.04.2019 04:00|       4175|       3627|  00:00:00.085(        85.235 ms.)|      1.025|  00:00:00.003(         3.811 ms.)|      4.471
|   17|  05.04.2019 05:00|       4177|       3747|  00:00:00.849(       849.454 ms.)|      1.041|  00:00:00.006(         6.124 ms.)|       .721
|   18|  05.04.2019 06:00|       4179|       3747|  00:00:00.849(       849.561 ms.)|      1.041|  00:00:00.000(          .051 ms.)|       .006
|   19|  05.04.2019 07:00|       4181|       3747|  00:00:00.839(       839.416 ms.)|      1.041|  00:00:00.000(          .062 ms.)|       .007
|   20|  05.04.2019 08:00|       4183|       3747|  00:00:00.846(       846.382 ms.)|      1.041|  00:00:00.000(          .007 ms.)|       .001
|   21|  05.04.2019 09:00|       4185|       3747|  00:00:00.855(       855.426 ms.)|      1.041|  00:00:00.000(          .065 ms.)|       .008
|   22|  05.04.2019 10:00|       4187|       3797|  00:01:40.150(    100150.165 ms.)|      1.055|  00:00:21.845(     21845.217 ms.)|     21.812

เจธเจพเจฐเฉ‡ SQL-เจšเฉ‹เจฃเจพเจ‚ เจฆเจพ เจŸเฉˆเจ•เจธเจŸ

เจฌเฉ‡เจจเจคเฉ€

SELECT 
  queryid , 
  query 
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY queryid , query

เจจเจคเฉ€เจœเจพ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจคเฉเจธเฉ€เจ‚ เจตเจฐเจ•เจฒเฉ‹เจก เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจจเฉ‹เจŸ:เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ›เจพเจ‚ เจตเจฟเฉฑเจš queryid เจจเฉ‚เฉฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจฒเจˆ เจ‡เจคเจฟเจนเจพเจธ เจฎเจฟเจฒเฉ‡เจ—เจพ (เจธเจชเฉ‡เจธ เจฌเจšเจพเจ‰เจฃ เจฒเจˆ, เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจฒเจˆ เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ)เฅค

เจ‡เจธ เจฒเจˆ, เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจชเฉเจฐเจฆเจฐเจธเจผเจจ 'เจคเฉ‡ เจ…เฉฐเจ•เฉœเจพ เจกเฉ‡เจŸเจพ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจ•เฉฑเจคเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
เจชเจนเจฟเจฒเจพ เจชเฉœเจพเจ… "เจ…เฉฐเจ•เฉœเจพ เจ…เฉฐเจ•เฉœเจฟเจ†เจ‚ เจฆเจพ เจธเฉฐเจ—เฉเจฐเจนเจฟ" เจชเฉ‚เจฐเจพ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจชเฉœเจพเจ… 'เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ - "เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ"เฅค
PostgreSQL เจธเจตเจพเจฒเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€เฅค เจญเจพเจ— 1 - เจฐเจฟเจชเฉ‹เจฐเจŸเจฟเฉฐเจ—

เจชเจฐ เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเฉ€ เจ•เจนเจพเจฃเฉ€ เจนเฉˆเฅค

เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เจฟเจ† เจœเจพเจตเฉ‡เจ—เจพโ€ฆ

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

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