เจเฉฐเจเฉเจจเฉเจ
เจฐ - เจฒเจพเจคเฉเจจเฉ เจคเฉเจ เจ
เจจเฉเจตเจพเจฆเจฟเจค - เจชเฉเจฐเฉเจฐเจฟเจคเฅค
เจเฉฐเจเจจเฉเจ
เจฐ เจเฉเจ เจตเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค (c) เจเจฐ. เจกเฉเจเจผเจฒ
เจเจชเฉเจเฉเจฐเจพเจซเจธ.
เจเจพเจ เจเจธ เจฌเจพเจฐเฉ เจเฉฑเจ เจเจนเจพเจฃเฉ เจเจฟเจเจ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจชเฉเจฐเจธเจผเจพเจธเจ เจจเฉเฉฐ เจเจชเจฃเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจ
เจคเฉเจค เจจเฉเฉฐ เจฏเจพเจฆ เจฐเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจฎเฉเจเจฌเฉฐเจง
เจธเจพเจฐเฉ เจจเจพเจ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเฉ เจเจ เจนเจจเฅค เจเจคเจซเจผเจพเจ เจฌเฉเจคเจฐเจคเฉเจฌเฉ เจนเจจ. เจธเจฎเฉฑเจเจฐเฉ เจฒเฉเจเจ เจฆเฉ เจจเจฟเฉฑเจเฉ เจฐเจพเจ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเฉ เจนเฉเฅค
เจตเจพเจฐเฉฐเจเฉเจเจ เจฆเจพ เจฌเฉเจฆเจพเจ เจตเจพ: เจฒเฉเจเจพเจ เจฆเฉ เจฏเฉเจเจจเจพเจฌเฉฑเจง เจฒเฉเฉ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจ เจเฉเจฌเจฒเจพเจ เจ เจคเฉ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจ เจคเฉ เจธเจนเฉ เจตเจฐเจฃเจจ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค "AS IS" เจจเจนเฉเจ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพเฅค
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจธเจฎเฉฑเจเจฐเฉ เจฆเฉ เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจฆเฉ เจเจพเจฐเจจ,
เจฆเฉเจเจพ, เจเฉฑเจ เจ เจธเจฒเฉ เจเจพเจนเจ เจฆเฉ เจเจคเจชเจพเจฆเจจ เจฆเฉ เจ เจงเจพเจฐ เจจเจพเจฒ เจจเจเจผเจฆเฉเจเฉ เจธเจฌเฉฐเจงเจพเจ เจฆเฉ เจเจพเจฐเจจ.
เจเจธ เจฒเจ, เจฒเฉเจเจพเจ เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจเจฎ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ เจตเจฟเจเจพเจฐ เจ เจคเฉ เจตเจฐเจฃเจจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจเฉเฅค
เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจธเจฟเจธเจเจฎ GitHub 'เจคเฉ เจชเฉเจธเจ เจเฉเจคเฉ เจเจพเจฃ เจฆเฉ เจชเฉฑเจงเจฐ เจคเฉฑเจ เจตเจงเฉเจเจพ, เจเจพเจ เจธเจผเจพเจเจฆ เจจเจนเฉเจเฅค เจธเจฎเจพเจ เจฆเฉฑเจธเฉเจเจพเฅค
เจเจนเจพเจฃเฉ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค - "
เจจเจคเฉเจเฉ เจตเจเฉเจ เจเฉ เจนเฉเจเจ, เจธเจญ เจคเฉเจ เจเจฎ เจธเจผเจฌเจฆเจพเจ เจตเจฟเฉฑเจ - "
เจฎเฉเจจเฉเฉฐ เจเจธ เจธเจญ เจฆเฉ เจฒเฉเฉ เจเจฟเจเจ เจนเฉ?
เจเฉเจฐ, เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเจพเจ เจเจฟ เจฐเจฟเจเจพเจเจฐเจฎเฉเจเจ เจฆเฉ เจธเจผเจพเจจเจฆเจพเจฐ เจฆเจฟเจจเจพเจ เจจเฉเฉฐ เจฏเจพเจฆ เจจเจพ เจเฉเจคเจพ เจเจพเจตเฉเฅค
เจฆเฉเจเจพ, เจเฉ เจฒเจฟเจเจฟเจ เจเจฟเจ เจธเฉ เจเจธ เจจเฉเฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจเจฐเจจเจพเฅค เจเจฟเจเจเจเจฟ เจเจ เจตเจพเจฐ เจฎเฉเจ เจเจฒเจเจฃ เจตเจฟเจ เจชเฉ เจเจพเจเจฆเจพ เจนเจพเจ เจ
เจคเฉ เจเฉเจ เจนเจฟเฉฑเจธเจฟเจเจ เจจเฉเฉฐ เจญเฉเฉฑเจฒ เจเจพเจเจฆเจพ เจนเจพเจ.
เจเฉเจฐ, เจ เจคเฉ เจธเจญ เจคเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจน เจเจฟเจธเฉ เจฒเจ เจเฉฐเจฎ เจ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจชเจนเฉเจ เจจเฉเฉฐ เจฎเฉเฉ เจเฉเจเจฃ เจ เจคเฉ เจฐเฉเจ เจเจเฉฑเจ เจพ เจจเจพ เจเจฐเจจ เจคเฉเจ เจฌเจเจฃ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจฆเฉเจเฉ เจธเจผเจฌเจฆเจพเจ เจตเจฟเฉฑเจ, เจเจชเจฃเฉ เจเจฐเจฎ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ เจเจฐเฉ (เจเจฌเจฐเฉเจต เจฆเฉ เจจเจนเฉเจ)เฅค เจเจฟเจเจเจเจฟ เจเจธ เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจเฉเจฎเจคเฉ เจเฉเจเจผ เจตเจฟเจเจพเจฐ เจนเจจเฅค เจฎเฉเฉฑเจ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเฉฑเจ เจตเจฟเจเจพเจฐ เจฒเฉฑเจญเจฃเจพ เจนเฉ. เจชเจฐ เจเจฟเจธเฉ เจตเจฟเจเจพเจฐ เจจเฉเฉฐ เจนเจเฉเจเจค เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃเจพ เจเฉฑเจ เจจเจฟเจฐเฉเจฒ เจคเจเจจเฉเจเฉ เจธเจตเจพเจฒ เจนเฉเฅค
เจเจธ เจฒเจ, เจเจ, เจนเฉเจฒเฉ-เจนเฉเจฒเฉ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ...
เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจเจ เจจ.
เจเจชเจฒเฉฑเจฌเจง:
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? เจคเฉเจนเจพเจกเจพ เจธเจตเจพเจฒ เจฌเจนเฉเจค เจขเฉเจเจตเจพเจ เจนเฉเฅค (เจจเจพเจฒ)
เจเจธ เจเจพเจธ เจเฉเจธ เจ
เจคเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจฅเฉเฉเจพ เจตเฉฑเจเจฐเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ - เจเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจชเฉเจฐเจฃเจพเจฒเฉ เจฌเจฃเจพเจเจเฅค
เจเฉเจฐ, เจเฉฑเจ เจธเจฟเจธเจเจฎ เจจเจนเฉเจ, เจฌเฉเจธเจผเจ, เจธเจผเจฌเจฆ เจฆเฉ เจชเฉเจฐเฉ เจ
เจฐเจฅเจพเจ เจตเจฟเฉฑเจ, เจเจน เจฌเจนเฉเจค เจเฉฑเจเจพ เจ
เจคเฉ เจนเฉฐเจเจพเจฐเฉ เจนเฉ, เจชเจฐ เจเฉฑเจเฉ-เจเฉฑเจ เจเจฟเจธเฉ เจคเจฐเฉเจนเจพเจ เจคเฉเจนเจพเจกเฉ เจเฉฐเจฎ เจจเฉเฉฐ เจเจธเจพเจจ เจฌเจฃเจพเจ เจ
เจคเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉเจเจ เจเจเจจเจพเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ เจนเฉเจฐ เจเจพเจฃเจเจพเจฐเฉ เจเจเฉฑเจ เฉ เจเจฐเฉเฅค เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจเจฟเจธเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจจเจพ เจฒเฉฑเจญเจฃ เจฒเจ - "เจเฉฑเจฅเฉ เจเจพเจ, เจฎเฉเจจเฉเฉฐ เจจเจนเฉเจ เจชเจคเจพ เจเจฟ เจเจฟเฉฑเจฅเฉ, เจเฉเจ เจฒเฉฑเจญเฉ, เจฎเฉเจจเฉเฉฐ เจจเจนเฉเจ เจชเจคเจพ เจเจฟ เจเฉ."
เจเจธ เจตเจฟเจเจฒเจช เจฆเฉ เจซเจพเจเจฆเฉ เจ เจคเฉ เจจเฉเจเจธเจพเจจ เจเฉ เจนเจจ:
เจชเฉเจฐเฉ:
1. เจเจน เจฆเจฟเจฒเจเจธเจช เจนเฉเฅค เจเฉเจฐ, เจเฉฑเจเฉ เจเฉฑเจ เจเจน เจจเจฟเจฐเฉฐเจคเจฐ "เจธเฉฐเจเจฃ เจกเฉเจเจพเจซเจพเจเจฒ, เจเฉเจฌเจฒเจธเจชเฉเจธ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ, เจเจฆเจฟ" เจจเจพเจฒเฉเจ เจตเจงเฉเจฐเฉ เจฆเจฟเจฒเจเจธเจช เจนเฉ.
2. เจเจน เจจเจตเฉเจ เจนเฉเจจเจฐ เจ
เจคเฉ เจจเจตเฉเจ เจตเจฟเจเจพเจธ เจนเจจเฅค เจเฉ, เจเจฒเจฆเฉ เจเจพเจ เจฌเจพเจ
เจฆ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจฒเจพเจเจ เจเจฟเฉฐเจเจฐเจฌเฉเจฐเฉเจก เจ
เจคเฉ เจกเฉเจจเจเจธ เจฆเฉเจตเฉเจเจพเฅค
เจจเฉเจเจธเจพเจจ:
1. เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฐเจฎ เจเจฐเจจเจพ เจชเจตเฉเจเจพเฅค เจธเจเจผเจค เจฎเจฟเจนเจจเจค.
2. เจคเฉเจนเจพเจจเฉเฉฐ เจจเจฟเจฏเจฎเจฟเจค เจคเฉเจฐ 'เจคเฉ เจธเจพเจฐเฉเจเจ เจเจคเฉเจตเจฟเจงเฉเจเจ เจฆเฉ เจ
เจฐเจฅ เจ
เจคเฉ เจธเฉฐเจญเจพเจตเจจเจพเจตเจพเจ เจฆเฉ เจตเจฟเจเจเจฟเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค
3. เจเจฟเจธเฉ เจเฉเจเจผ เจฆเฉ เจเฉเจฐเจฌเจพเจจเฉ เจเจฐเจจเฉ เจชเจตเฉเจเฉ, เจเจฟเจเจเจเจฟ เจเฉฑเจ เจเฉฐเจเฉเจจเฉเจ
เจฐ เจฒเจ เจเจชเจฒเจฌเจง เจเฉฑเจเฉ เจเฉฑเจ เจธเจฐเฉเจค - เจธเจฎเจพเจ - เจฌเฉเจฐเจนเจฟเจฎเฉฐเจก เจฆเฉเจเจฐเจพ เจธเฉเจฎเจฟเจค เจนเฉเฅค
4. เจธเจญ เจคเฉเจ เจญเฉเฉเฉ เจ
เจคเฉ เจธเจญ เจคเฉเจ เจเฉเจเจพ เจเฉเจเจผ - เจจเจคเฉเจเจพ เจฌเจเจตเจพเจธ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ "เจเฉเจนเจพ เจจเจนเฉเจ, เจกเฉฑเจกเฉ เจจเจนเฉเจ, เจชเจฐ เจเฉฑเจ เจ
เจฃเจเจพเจฃ เจเจพเจจเจตเจฐเฅค"
เจเฉ เจเฉเจเจฎ เจจเจนเฉเจ เจฒเฉเจเจฆเฉ เจเจน เจธเจผเฉเจเจชเฉเจจ เจจเจนเฉเจ เจชเฉเจเจฆเฉเฅค
เจเจธ เจฒเจ - เจฎเจเจผเฉเจฆเจพเจฐ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ.
เจเจฎ เจตเจฟเจเจพเจฐ - เจฏเฉเจเจจเจพเจฌเฉฑเจง
(เจฒเฉเจ เจคเฉเจ เจฒเจฟเจ เจเจฟเจ เจเจฟเฉฑเจคเจฐ ยซ
เจตเจฟเจเจเจฟเจ:
- เจฎเจฟเจเจฐเฉ PostgreSQL เจเจเจธเจเฉเจเจธเจผเจจ "pg_stat_statements" เจเฉเจเฉ เจฆเฉ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจธเจฅเจพเจชเจฟเจค เจเฉเจคเฉ เจเจ เจนเฉเฅค
- เจจเจฟเจเจฐเจพเจจเฉ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจชเฉเจพเจ 'เจคเฉ pg_stat_statements เจเจคเจฟเจนเจพเจธ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจ เจคเฉ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจธเจฅเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจ เจฒเจ เจธเฉเจตเจพ เจเฉเจฌเจฒเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจเฅค
- เจฎเจพเจจเฉเจเจฐเจฟเฉฐเจ เจนเฉเจธเจ 'เจคเฉ, เจ เจธเฉเจ เจฌเฉเจธเจผ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจเจฟเจธ เจตเจฟเฉฑเจ เจเจฟเจเจ เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจเจเจจเจพเจตเจพเจ เจชเฉเจฆเจพ เจเจฐเจจ เจฒเจ เจตเฉ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
เจธเฉเจตเจพ เจเฉเจฌเจฒ
เจชเจนเจฟเจฒเจพเจ, เจเฉฑเจ เจฏเฉเจเจจเจพเจฌเฉฑเจง เจธเจฐเจฒ ERD, เจ
เฉฐเจค เจตเจฟเฉฑเจ เจเฉ เจนเฉเจเจ:
เจเฉเจฌเจฒ เจฆเจพ เจธเฉฐเจเฉเจช เจตเฉเจฐเจตเจพเจ
เฉฐเจคเจฎ เจชเฉเจเจเฉฐเจ - เจนเฉเจธเจ, เจเจฆเจพเจนเจฐเจฃ เจจเจพเจฒ เจเฉเจจเฉเจเจธเจผเจจ เจฆเจพ เจฌเจฟเฉฐเจฆเฉ
เจกเจพเจเจพเจฌเฉเจธ - เจกเจพเจเจพเจฌเฉเจธ เจชเฉเจฐเจพเจฎเฉเจเจฐ
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 เจจเฉเฉฐ เจฐเจฟเจเจพเจฐเจก เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฒเจ เจเจคเจฟเจนเจพเจธ เจฎเจฟเจฒเฉเจเจพ (เจธเจชเฉเจธ เจฌเจเจพเจเจฃ เจฒเจ, เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฒเจ เจฐเจฟเจชเฉเจฐเจเจพเจ เจจเฉเฉฐ เจเฉฑเจก เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ)เฅค
เจเจธ เจฒเจ, เจชเฉเฉฑเจเจเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ 'เจคเฉ เจ
เฉฐเจเฉเจพ เจกเฉเจเจพ เจเจชเจฒเจฌเจง เจนเฉ เจ
เจคเฉ เจเจเฉฑเจคเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจชเจนเจฟเจฒเจพ เจชเฉเจพเจ
"เจ
เฉฐเจเฉเจพ เจ
เฉฐเจเฉเจฟเจเจ เจฆเจพ เจธเฉฐเจเฉเจฐเจนเจฟ" เจชเฉเจฐเจพ เจนเฉ เจเจฟเจ เจนเฉเฅค
เจคเฉเจธเฉเจ เจฆเฉเจเฉ เจชเฉเจพเจ
'เจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ - "เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ"เฅค
เจชเจฐ เจเจน เจฌเจฟเจฒเจเฉเจฒ เจตเฉฑเจเจฐเฉ เจเจนเจพเจฃเฉ เจนเฉเฅค
เจจเฉเฉฐ เจเจพเจฐเฉ เจฐเฉฑเจเจฟเจ เจเจพเจตเฉเจเจพโฆ
เจธเจฐเฉเจค: www.habr.com