PostgreSQL рдореЗрдВ рддрд╛рд▓реЗ: 4. рдореЗрдореЛрд░реА рдореЗрдВ рддрд╛рд▓реЗ

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдк рд▓реЙрдХ, рд░реЛ-рд▓реЗрд╡рд▓ рд▓реЙрдХ , рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓реЙрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдбреЗрдбрд┐рдХреЗрдЯреЗрдб рд╕рд╣рд┐рдд) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЙрдХ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред

рдЖрдЬ рдореИрдВ рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд╕реНрдореГрддрд┐ рддрд╛рд▓реЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред рд╣рдо рд╕реНрдкрд┐рдирд▓реЙрдХ, рд▓рд╛рдЗрдЯрд╡реЗрдЯ рд▓реЙрдХ рдФрд░ рдмрдлрд░ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдирдореВрдиреЗ рднреА рдХрд░реЗрдВрдЧреЗред



рд╕реНрдкрд┐рди рд▓реЙрдХ


рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд╡рд┐рдкрд░реАрдд, "рднрд╛рд░реА" рддрд╛рд▓реЗ, рд▓рд╛рдЗрдЯрд░ рдФрд░ рд╕рд╕реНрддреЗ (рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рддрд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдЭрд╛ рд░реИрдо рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдкрд┐рди-рд▓реЙрдХ рдпрд╛ рд╕реНрдкрд┐рдирд▓реЙрдХ рд╣реИрдВ ред рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп (рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ) рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдФрд░ рдПрдХ рд╕рд╛рде рдмрджрд▓рд╛рд╡ рд╕реЗ рд╕реНрдореГрддрд┐ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реНрдЧреЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдкрд┐рди рддрд╛рд▓реЗ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдкрд░рдорд╛рдгреБ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рддреБрд▓рдирд╛-рдФрд░-рд╕реНрд╡реИрдкред рд╡реЗ рдПрдХрд▓ рдЕрдирдиреНрдп рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд▓реЙрдХ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╕рдХреНрд░рд┐рдп рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИ - рдХрдорд╛рдВрдб рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ ("рд╕реНрдкрд┐рдиреНрд╕" рд▓реВрдк рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдирд╛рдо) рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкрд┐рди рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдкрд┐рди рд▓реЙрдХ рдЧрддрд┐рд░реЛрдзреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ (рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдФрд░ рдХреЛрдИ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдкрд┐рди рд▓реЙрдХ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рдЙрдирдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ред

рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ


рдЕрдЧрд▓рд╛ рддрдерд╛рдХрдерд┐рдд рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ (рд╣рд▓реНрдХреЗ рддрд╛рд▓реЗ, lwlocks) рдЖрддреЗ рд╣реИрдВред

рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рд╕реВрдЪреА)ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд▓рд╛рдЗрдЯ рд▓реЙрдХ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рд▓рд╛рдЗрдЯ рд▓реЙрдХ рдЖрдИ / рдУ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рджреЛ рдореЛрдб рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ: рдЕрдирдиреНрдп (рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕рд╛рдЭрд╛ (рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЬреИрд╕реЗ, рдХреЛрдИ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрддрд╛рд░ рдирд╣реАрдВ рд╣реИ: рдпрджрд┐ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд▓реЙрдХ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╕рдорд╛рдирддрд╛ рдФрд░ рднрд╛рд░реА рднрд╛рд░ рд╡рд╛рд▓реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдЗрд╕рд╕реЗ рдЕрдкреНрд░рд┐рдп рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ )ред

рдЧрддрд┐рд░реЛрдзреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХрд░реНрдиреЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд░рд╣рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рд╕реНрдкрд┐рди рддрд╛рд▓реЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЙрдиреНрд╣реЗрдВ "рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ" (рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ)ред

рдХреНрд▓рд┐рдк рдмрдлрд░


рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рддрд╛рд▓рд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЖрд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдлрд░ рдкрд┐рдирд┐рдВрдЧ рд╣реИ ред

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрдлрд░ рдХреЗ рд╕рд╛рде, рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рдХрд┐ рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдорд▓реНрдЯреА-рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдпрд╣ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдк рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдкреГрд╖реНрда рдХреЛ рдмрдлрд░ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред

рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдВрдзрди рд╕реЗ рдмрд╛рдзрд┐рдд рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдРрд╕реЗ рдмрдлрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЬрдм рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдмрдлрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрддрд╛рд░ рдФрд░ рд╕реЛ рдЬрд╛рддреА рд╣реИ - рдмрдиреНрдзрди рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рдЬрдЧрд╛ рджреЗрдЧрд╛ред

рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕рдореЗрдХрди рдХреА рдЙрдореНрдореАрджреЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг: рдмрдлрд░ рдХреИрд╢




рдЕрдм, рдХреБрдЫ (рдЕрдзреВрд░рд╛!) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рддрд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдмрдлрд╝рд░реНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рд╡рд╛рд▓реА рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдореЛрдб рдореЗрдВ рдПрдХ рд╣рд▓реНрдХреЗ рдмрдлрд░ рдореИрдкрд┐рдВрдЧ рд▓реЙрдХ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рдЕрд╕рд╛рдзрд╛рд░рдг рдореЛрдб рдореЗрдВред рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓реЙрдХ рдХреЛ рдПрдХ рдЯреНрд░реЗрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 128 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рдЕрдкрдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред

рд╕реНрдкрд┐рди-рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдлрд░ рдХреЗ рд╣реЗрдбрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдЪрд╛рд▓рди (рдЬреИрд╕реЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдирд╛) рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдкрд░рдорд╛рдгреБ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рддрд╛рд▓реЗ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрдлрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрдлрд░ рд╕рд╛рдордЧреНрд░реА рд▓реЙрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдВрдХреЗрдд рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрдлрд░ рдХреНрд▓рд┐рдк рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдмрдлрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓реЙрдХ рдХреЛ рдЕрд╕рд╛рдзрд╛рд░рдг рдореЛрдб рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбрд┐рд╕реНрдХ рд╕реЗ рдмрдлрд╝рд░ (рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛) рдкрдврд╝рддреЗ рд╕рдордп, рдЖрдИрдУ рдЗрди рдкреНрд░рдЧрддрд┐ рд▓реЙрдХ рдкрд░ рднреА рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрда рдХреЛ рдкрдврд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдпрд╛ рд▓рд┐рдЦрд╛ рд╣реБрдЖ рд╣реИ) - рд╡реЗ рдХрддрд╛рд░ рдореЗрдВ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред

рдмрдлрд╝рд░реНрд╕ рдХреЛ рдФрд░ рдЕрдЧрд▓реЗ рд╢рд┐рдХрд╛рд░ рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд╕рд┐рдВрдЧрд▓ рдмрдлрд░ рд╕реНрдЯреНрд░реИрдЯреЗрдЬреА рд▓реЙрдХ рд╕реНрдкрд┐рди рд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: рд▓реЙрдЧ рдмрдлрд╝рд░реНрд╕



рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг: рд▓реЙрдЧ рдмрдлрд╝рд░реНрд╕ред

рдЬрд░реНрдирд▓ рдХреИрд╢ рдХреЗ рд▓рд┐рдП, рд╣реИрд╢ рдЯреЗрдмрд▓ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдареЛрдВ рдХреА рдореИрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИред рдмрдлрд╝рд░ рдХреИрд╢ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╣реИрд╢ рдЯреЗрдмрд▓, рд╡рд╛рд▓рдмреЙрдл рдореИрдкрд┐рдВрдЧреЙрдХ рдХреЗ рдПрдХрдорд╛рддреНрд░ рд╣рд▓реНрдХреЗ рд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд░реНрдирд▓ рдХреИрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдмрдлрд░ рдХреИрд╢ рдХрд╛ 1/32) рдФрд░ рдмрдлрд╝рд░реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЕрдзрд┐рдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред

рдбрд┐рд╕реНрдХ рдкрд░ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣рд▓реНрдХреЗ рд╡реЙрдХрд▓рд╛рдЗрдЯ рд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░ рд╕рдХреЗред

рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╡рд╛рд▓ рдкреЗрдЬ рдкрд░ рдПрдХ рд╕реНрдерд╛рди рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдкрд┐рди рд▓реЙрдХ рдбрд╛рд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рд▓реЙрдХ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЬрдЧрд╣ рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░рддреА рд╣реИред рдирдХрд▓ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХреЛ 8 рдЖрд╕рд╛рди рд▓реЙрдХ рдбрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рддрд╛рд▓реЗ рдХреА рдПрдХ рдЯреНрд░реЗрдЪ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред

рдЖрдВрдХрдбрд╝рд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рд▓реЙрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рддрд╛рд▓реЗ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд░реИрдо рдореЗрдВ рддрд╛рд▓реЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдореНрдореАрдж рдХреА рдирд┐рдЧрд░рд╛рдиреА


PostgreSQL 9.6 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг pg_stat_activity рджреГрд╢реНрдп рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдЬрдм рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рд░рдЦрд░рдЦрд╛рд╡) рдЕрдкрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИ, рддреЛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рджреГрд╢реНрдп рдореЗрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: Wait_event_type рдХреЙрд▓рдо рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛_рдЗрд╡реЗрдВрдЯ рдХреЙрд▓рдо рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рджреГрд╢реНрдп рдХреЗрд╡рд▓ рдЙрди рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдпрджрд┐ рджреГрд╢реНрдп рдЕрдкреЗрдХреНрд╖рд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЖрдорддреМрд░ рдкрд░ 100 рдкреНрд░рддрд┐рд╢рдд рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдПрдХрдорд╛рддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдХреЛрдИ рдЖрдВрдХрдбрд╝реЗ рдирд╣реАрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВред рд╕рдордп рдХреЗ рд╕рд╛рде рдЙрдореНрдореАрджреЛрдВ рдХреА рддрд╕реНрд╡реАрд░ рдкрд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рджреГрд╢реНрдп рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирдореВрдирд╛ рд╣реИ ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pg_wait_sampling ред

рдирдореВрдирд╛ рд▓реЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рдХреГрддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдк рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдХрдо рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдирдореВрдирд╛ рд▓реЗрдирд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрд╡реГрддреНрддрд┐ рдмрдврд╝рдиреЗ рд╕реЗ рдУрд╡рд░рд╣реЗрдб рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕рддреНрд░реЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред

рд╕рднреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдорд╛рдирд╛ рддрд╛рд▓реЗ рдХреА рдЙрдореНрдореАрджреЗрдВ рдПрдХ рдмрдбрд╝реА рд╢реНрд░реЗрдгреА рдмрдирд╛рддреЗ рд╣реИрдВ:

  • рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЙрдХ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ (Wait_event_type рдХреЙрд▓рдо рдореЗрдВ рд▓реЙрдХ рдорд╛рди);
  • рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ (LWLock) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ;
  • рдПрдХ рдкрд┐рди рдХрд┐рдП рдЧрдП рдмрдлрд░ (рдмрдлрд╝рд░рдкрд┐рди) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреА рд╣реИ:

  • I / O рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ (IO) рддрдм рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдХрд┐рд╕реА рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдпрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ (рдХреНрд▓рд╛рдЗрдВрдЯ) рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ (IPC) рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреА рд╣реИ;
  • рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдирдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдореНрдореАрджреЛрдВ (рдПрдХреНрд╕рдЯреЗрдВрд╢рди) рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╕ рдЙрдкрдпреЛрдЧреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдЕрдкрдиреЗ рдореБрдЦреНрдп рд▓реВрдк (рдЧрддрд┐рд╡рд┐рдзрд┐) рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ;
  • рдПрдХ рдЯрд╛рдЗрдорд░ (рдЯрд╛рдЗрдордЖрдЙрдЯ) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдРрд╕реА рдЙрдореНрдореАрджреЗрдВ "рд╕рд╛рдорд╛рдиреНрдп" рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

рдЕрдкреЗрдХреНрд╖рд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╢реЗрд╖ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рд╣реИред рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рд╕рдордп рдХреЛ рдмреЗрд╣рд┐рд╕рд╛рдм рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

=> SELECT pid, backend_type, wait_event_type, wait_event FROM pg_stat_activity; 
  pid | backend_type | wait_event_type | wait_event -------+------------------------------+-----------------+--------------------- 28739 | logical replication launcher | Activity | LogicalLauncherMain 28736 | autovacuum launcher | Activity | AutoVacuumMain 28963 | client backend | | 28734 | background writer | Activity | BgWriterMain 28733 | checkpointer | Activity | CheckpointerMain 28735 | walwriter | Activity | WalWriterMain (6 rows) 

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ "рдЪрд╛рд░реЛрдВ рдУрд░ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣реА рд╣реИрдВред рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ рдЦрд╛рд▓реА рдорд╛рди_рдкреНрд░рдХрд╛рд░ рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛_рдИрд╡реЗрдВрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рднреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ - рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реИред

рдирдореВрдирд╛


рдирдореВрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо pg_wait_sampling рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдореИрдВ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рддрдм рд╣рдо рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд░реНрд╡рд░ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред

 => ALTER SYSTEM SET shared_preload_libraries = 'pg_wait_sampling'; 

 student$ sudo pg_ctlcluster 11 main restart 

рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

 => CREATE EXTENSION pg_wait_sampling; 

рд╡рд┐рд╕реНрддрд╛рд░ рдЖрдкрдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП - рдХрд╛рдо рдХреЗ рдкреВрд░реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд┐рдд рдЖрдВрдХрдбрд╝реЗред

рдпрд╣рд╛рдБ рд╣рдо рдХреБрдЫ рд╣реА рд╕реЗрдХрдВрдб рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ:

 => SELECT * FROM pg_wait_sampling_profile; 
  pid | event_type | event | queryid | count -------+------------+---------------------+---------+------- 29074 | Activity | LogicalLauncherMain | 0 | 220 29070 | Activity | WalWriterMain | 0 | 220 29071 | Activity | AutoVacuumMain | 0 | 219 29069 | Activity | BgWriterMain | 0 | 220 29111 | Client | ClientRead | 0 | 3 29068 | Activity | CheckpointerMain | 0 | 220 (6 rows) 

рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдореБрдЦреНрдп рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ рдкреНрд░рдХрд╛рд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ (рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреА рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдХрд╛рдо рдирд╣реАрдВ рджрд┐рдЦрддрд╛) рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ (psql рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ)ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ( pg_wait_sampling.profile_period рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд╕рд╛рде, рдирдореВрдирд╛ рдЕрд╡рдзрд┐ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИ, рдЕрд░реНрдерд╛рдд, рдорд╛рди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 100 рдмрд╛рд░ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕реЗрдХрдВрдб рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧрд┐рдирддреА рдХреЗ рдореВрд▓реНрдп рдХреЛ 100 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рд╣реИрдВ, рд╣рдо рдЕрдиреБрд░реЛрдз рдореЗрдВ pg_stat_activity рджреГрд╢реНрдп рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 => SELECT p.pid, a.backend_type, a.application_name AS app, p.event_type, p.event, p.count FROM pg_wait_sampling_profile p LEFT JOIN pg_stat_activity a ON p.pid = a.pid ORDER BY p.pid, p.count DESC; 
  pid | backend_type | app | event_type | event | count -------+------------------------------+------+------------+----------------------+------- 29068 | checkpointer | | Activity | CheckpointerMain | 222 29069 | background writer | | Activity | BgWriterMain | 222 29070 | walwriter | | Activity | WalWriterMain | 222 29071 | autovacuum launcher | | Activity | AutoVacuumMain | 221 29074 | logical replication launcher | | Activity | LogicalLauncherMain | 222 29111 | client backend | psql | Client | ClientRead | 4 29111 | client backend | psql | IPC | MessageQueueInternal | 1 (7 rows) 

рдЖрдЗрдП pgbench рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЪрд┐рддреНрд░ рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИред

 student$ pgbench -i test 

рд╣рдо рдПрдХрддреНрд░рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред

 => SELECT pg_wait_sampling_reset_profile(); 

 student$ pgbench -T 30 test 

Pgbench рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 => SELECT p.pid, a.backend_type, a.application_name AS app, p.event_type, p.event, p.count FROM pg_wait_sampling_profile p LEFT JOIN pg_stat_activity a ON p.pid = a.pid WHERE a.application_name = 'pgbench' ORDER BY p.pid, p.count DESC; 
  pid | backend_type | app | event_type | event | count -------+----------------+---------+------------+------------+------- 29148 | client backend | pgbench | IO | WALWrite | 8 29148 | client backend | pgbench | Client | ClientRead | 1 (2 rows) 

рдмреЗрд╢рдХ, pgbench рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдереЛрдбрд╝реА рднрд┐рдиреНрди рд╣реЛрдВрдЧреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ (IO / WalWrite) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдИ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдерд╛ред

рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ


рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕реА рднреА рдЙрдореНрдореАрдж рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЬрдм рдирдореВрдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереАред рдпрджрд┐ рдпрд╣ рдирдореВрдирд╛ рдЕрд╡рдзрд┐ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рд╕реЗрдХрдВрдб рдХрд╛ рд╕реМрд╡рд╛рдВ) рд╕реЗ рдХрдо рдерд╛, рддреЛ рдпрд╣ рдмрд╕ рдирдореВрдиреЗ рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░ рд╕рдХрддрд╛ рдерд╛ред

рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рддрд╛рд▓реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдП - рд▓реЗрдХрд┐рди рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FUSE рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрдорд┐рдд рдзреАрдореЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рднреА I / O рдСрдкрд░реЗрд╢рди рдХреЛ рд╕реЗрдХрдВрдб рдХрд╛ 1/10 рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╣реА рдЯреЗрд╕реНрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

 => SELECT pg_wait_sampling_reset_profile(); 

 student$ pgbench -T 30 test 

 => SELECT p.pid, a.backend_type, a.application_name AS app, p.event_type, p.event, p.count FROM pg_wait_sampling_profile p LEFT JOIN pg_stat_activity a ON p.pid = a.pid WHERE a.application_name = 'pgbench' ORDER BY p.pid, p.count DESC; 
  pid | backend_type | app | event_type | event | count -------+----------------+---------+------------+----------------+------- 29240 | client backend | pgbench | IO | WALWrite | 1445 29240 | client backend | pgbench | LWLock | WALWriteLock | 803 29240 | client backend | pgbench | IO | DataFileExtend | 20 (3 rows) 

рдЕрдм, pgbench рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореБрдЦреНрдп рдЕрдкреЗрдХреНрд╖рд╛ I / O рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдпрд╛ рдмрд▓реНрдХрд┐, рдПрдХ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЪреВрдВрдХрд┐ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ), рд▓реЙрдЧ рдХреЛ рдбрд┐рд╕реНрдХ рд▓рд┐рдЦрдирд╛ рд╡рд╛рд▓рд╡рд░реНрдЯреЙрдХ рд▓рд╛рдЗрдЯ рд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдпрд╣ рд▓реЙрдХ рднреА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ - рд╣рдо рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рдХреНрд▓рд┐рдк рдмрдлрд░


рдмрдлрд░ рдХреЗ рдкрд┐рдирд┐рдВрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рдХрд┐ рдЦреБрд▓реЗ рдХрд░реНрд╕рд░ рдкрд┐рди рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдкрдврд╝рдирд╛ рддреЗрдЬ рд╣реЛред

рд╣рдо рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдХрд░реНрд╕рд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред

 => BEGIN; => DECLARE c CURSOR FOR SELECT * FROM pgbench_history; => FETCH c; 
  tid | bid | aid | delta | mtime | filler -----+-----+-------+-------+----------------------------+-------- 9 | 1 | 35092 | 477 | 2019-09-04 16:16:18.596564 | (1 row) 

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдмрдлрд░ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (pinning_backends):

 => SELECT * FROM pg_buffercache WHERE relfilenode = pg_relation_filenode('pgbench_history') AND relforknumber = 0 \gx 
 -[ RECORD 1 ]----+------ bufferid | 190 relfilenode | 47050 reltablespace | 1663 reldatabase | 16386 relforknumber | 0 relblocknumber | 0 isdirty | t usagecount | 1 pinning_backends | 1 <--   1  

рдЕрдм рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВрдЧреЗ:

 | => SELECT pg_backend_pid(); 
 | pg_backend_pid | ---------------- | 29367 | (1 row) 

 | => VACUUM VERBOSE pgbench_history; 
 | INFO: vacuuming "public.pgbench_history" | INFO: "pgbench_history": found 0 removable, 0 nonremovable row versions in 1 out of 1 pages | DETAIL: 0 dead row versions cannot be removed yet, oldest xmin: 732651 | There were 0 unused item pointers. 
 | Skipped 1 page due to buffer pins, 0 frozen pages. 
 | 0 pages are entirely empty. | CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s. | VACUUM 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреЗрдЬ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдмрдлрд░ рдкрд┐рди рдХреЗ рдХрд╛рд░рдг 1 рдкреЗрдЬ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдлрд╛рдИ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд┐рди рдХрд┐рдП рдЧрдП рдмрдлрд░ рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рд╕реЗ рдкрдВрдХреНрддрд┐ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдлрд╛рдИ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧреА - рдкреГрд╖реНрда рдЕрдЧрд▓реА рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдФрд░ рдЕрдм рд╣рдо рдардВрдб рд╕реЗ рд╕рдлрд╛рдИ рдХрд░реЗрдВрдЧреЗ:

 | => VACUUM FREEZE VERBOSE pgbench_history; 

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдлреНрд░реАрдЬ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рднреА рдкреЗрдЬ рдХреЛ рдлреНрд░реАрдЬ рдореИрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдиреНрдпрдерд╛ pg_class.relfrozenxid рдореЗрдВ unfrozen рд▓реЗрди-рджреЗрди рдХреА рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд░реНрд╕рд░ рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рддрдХ рдХреНрд▓реАрдирдЕрдк рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИред

 => SELECT age(relfrozenxid) FROM pg_class WHERE oid = 'pgbench_history'::regclass; 
  age ----- 27 (1 row) 
 => COMMIT; --    

 | INFO: aggressively vacuuming "public.pgbench_history" | INFO: "pgbench_history": found 0 removable, 26 nonremovable row versions in 1 out of 1 pages | DETAIL: 0 dead row versions cannot be removed yet, oldest xmin: 732651 | There were 0 unused item pointers. 
 | Skipped 0 pages due to buffer pins, 0 frozen pages. 
 | 0 pages are entirely empty. | CPU: user: 0.00 s, system: 0.00 s, elapsed: 3.01 s. | VACUUM 

 => SELECT age(relfrozenxid) FROM pg_class WHERE oid = 'pgbench_history'::regclass; 
  age ----- 0 (1 row) 

рдареАрдХ рд╣реИ, рдЪрд▓реЛ рджреВрд╕рд░реЗ psql рд╕рддреНрд░ рдЬрд┐рд╕рдореЗрдВ VACUUM рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

 => SELECT p.pid, a.backend_type, a.application_name AS app, p.event_type, p.event, p.count FROM pg_wait_sampling_profile p LEFT JOIN pg_stat_activity a ON p.pid = a.pid WHERE p.pid = 29367 ORDER BY p.pid, p.count DESC; 
  pid | backend_type | app | event_type | event | count -------+----------------+------+------------+------------+------- 29367 | client backend | psql | BufferPin | BufferPin | 294 29367 | client backend | psql | Client | ClientRead | 10 (2 rows) 

рдкреНрд░рддреАрдХреНрд╖рд╛ рдкреНрд░рдХрд╛рд░ рдмрдлрд╝рд░рдкрд┐рди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлреНрд▓рд╢ рдмрдлрд░ рдХреЗ рдореБрдХреНрдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕ рдкрд░ рд╣рдо рдорд╛рдиреЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рддрд╛рд▓реЗ рдкреВрд░реЗ рдХрд░ рд▓рд┐рдП рд╣реИрдВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/hi466199/


All Articles