рдкреНрд░реЛ рдорд╛рдирдХ 12.1 рдХрд╛ рд╡рд┐рдореЛрдЪрди

рдкреЛрд╕реНрдЯрдЧреНрд░реИрдЬ рдкреНрд░реЛ рдкреНрд░реЛ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рддрдХ рддреЗрдЬреА рд╕реЗ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╣рдо рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВрдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛ рдЕрднреА рддрдХ PostgreSQL рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдПрдХ рдареЛрд╕ рдкрде рдкрд░ рд╣реИрдВ, рд╣рдо рдкреЛрд╕реНрдЯрдЧреНрд░реИрд╕ рдкреНрд░реЛ рд╕реНрдЯреИрдВрдбрд░реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Postgres Pro Standard рдореЗрдВ рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдорд╛рдВрдЧреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ PostgreSQL рд╡рд┐рддрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

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

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

Postgres Pro Standard рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ PostgreSQL рд╕реЗ рдЕрд▓рдЧ рд╣реИ: рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рд╕реЗрдЯ рдЬреЛ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдХрд░реНрдиреЗрд▓ рд╣реАред рдХрд░реНрдиреЗрд▓ рдкрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдкреИрдЪ рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдиреЙрди-рдмреНрд░реЗрдХрд┐рдВрдЧ рд▓реЙрдХ рдбрд┐рдЯреЗрдХреНрдЯрд░) рдФрд░ рдкреИрдЪ рдЬреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рджрдХреНрд╖рддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рддрд╛рдХрдд рд╕реЗ pg_probackup рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PTRACK 2.0 рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдорд╛рдирдХ рдФрд░ PostgreSQL рдХреЗ рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрднрд╡ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ pg_pathman рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдорд╛рдирдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ github рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡реЗрдирд┐рд▓рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реИрд╕рдХреНрдпреВрдПрд▓ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреАред
рдЖрдЗрдП рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред

ICU рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ


PostgreSQL рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдорд╛рдирдХ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЖрдИрдмреАрдПрдо рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЖрдИрд╕реАрдпреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рд╣реИред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдордВрдЪ-рд╕реНрд╡рддрдВрддреНрд░ рдЫрдБрдЯрд╛рдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реАрд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 1C рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ PostgreSQL "рдПрдХ-рдПрд╕ рдХреЗ рд▓рд┐рдП" рдЕрд╕реЗрдВрдмрд▓реА рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, ICU рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХрднреА-рдХрднреА libc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреЗрдЬ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬреНрдЮрд╛рдд рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░реЛ рдорд╛рдирдХ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг (9.5) рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред PostgreSQL рдореЗрдВ, ICU рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрд╕реНрдХрд░рдг 10 рд╕реЗ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рд╣реИред

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

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

рддрд╛рд▓реЗ, рдЬреБрдбрд╝рдиреЗ рдФрд░ рдЧреНрд░реБрдк рдмрд╛рдп рдХрд╛ рдЕрдиреБрдХреВрд▓рди


рдЧрддрд┐рд░реЛрдз рдкрд╣рдЪрд╛рди рддрдВрддреНрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЦрд╝рд░рд╛рдм рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рдЕрдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдХрд░реНрдиреЗрд▓ рдкреИрдЪ рдЗрд╕реЗ рдмрд┐рдирд╛ рдмреНрд░реЗрдХ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрди рддрдВрддреНрд░ рдореЗрдВ рдмрдбрд╝реЗ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рдж, рдпреЗ рдкрд░реЗрд╢рд╛рдиреА рдХреЗрд╡рд▓ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрд░ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

рдЙрдкрдпреБрдХреНрдд рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдмреЗрд╣рддрд░ рдЕрдиреБрдорд╛рдиред

рдЕрдм рдЖрдк рдЙрдкрдпреБрдХреНрдд рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдореВрд╣ рдФрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлреАрдЪрд░ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдЯреИрдВрдбрд░реНрдб 11.1.1 рдФрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ 11.2.1 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдирдХ 12 рдореЗрдВ рдПрдХ рднреА рд╣реИред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рдХреЗ рд╕реАрдЯреАрдУ рдлреЗрдбреЛрд░ рд╕рд┐рдЧреЗрд╡ рдиреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЗрди рдЙрдкрдпреЛрдЧреА рдкреИрдЪ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдкреАрдЬреА 13 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЧреНрд░реБрдк рдмрд╛рдп рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ: рд╡реЗ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

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

рдпрджрд┐ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рдорд╛рди рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рддреЛ рдФрд░ рдХреБрдЫ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рджреВрд╕рд░реЗ рдХреЙрд▓рдо рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреБрд▓рдирд╛ рдХрд░рдиреА рд╣реЛрдЧреАред


рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣реА рд╣реИ:

DROP TABLE IF EXISTS btg; SELECT i AS id, i/2 AS p, format('%60s', i%2) AS v INTO btg FROM generate_series(1, 1000000) i; 


рдкрд╛рда рдлрд╝реАрд▓реНрдб v рдореЗрдВ, 60 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж рдирдВрдмрд░ 0 рдпрд╛ 1. рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ:

 SELECT * FROM btg ORDER BY id DESC LIMIT 3; id | p | v ---------+--------+-------------------------------------------------------------- 1000000 | 500000 | 0 999999 | 499999 | 1 999998 | 499999 | 0 (3 rows) 


 VACUUM btg; ANALYSE btg; SET enable_hashagg=off; SET max_parallel_workers= 0; SET max_parallel_workers_per_gather = 0; 


рдкрд░рд┐рдгрд╛рдо рд╕рдореВрд╣:

 VACUUM btg; EXPLAIN ANALYZE SELECT count(*) FROM btg GROUP BY p, v; 


PostgreSQL рдпреЛрдЬрдирд╛:

  QUERY PLAN ------------------------------------------------------ GroupAggregate (cost=204036.84..218981.05 rows=494421 width=73) (actual time=843.999..1194.985 rows=1000000 loops=1) Group Key: p, v -> Sort (cost=204036.84..206536.84 rows=1000000 width=65) (actual time=843.990..946.769 rows=1000000 loops=1) Sort Key: p, v Sort Method: external sort Disk: 73320kB -> Seq Scan on btg (cost=0.00..22346.00 rows=1000000 width=65) (actual time=0.158..151.645 rows=1000000 loops=1) Planning time: 0.317 ms Execution time: 1250.086 ms (8 rows) 


рдЕрдм рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ: v, рдФрд░ рдХреЗрд╡рд▓ рддрдм p:

 EXPLAIN ANALYZE SELECT count(*) FROM btg GROUP BY v, p; QUERY PLAN ------------------------------------------------ GroupAggregate (cost=204036.84..218981.05 rows=494421 width=73) (actual time=2552.477..3353.890 rows=1000000 loops=1) Group Key: v, p -> Sort (cost=204036.84..206536.84 rows=1000000 width=65) (actual time=2552.469..3111.516 rows=1000000 loops=1) Sort Key: v, p Sort Method: external merge Disk: 76264kB -> Seq Scan on btg (cost=0.00..22346.00 rows=1000000 width=65) (actual time=0.082..126.578 rows=1000000 loops=1) Planning time: 0.060 ms Execution time: 3411.048 ms (8 rows) 


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

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрдХ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рдкреИрдЪ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреА рдЬреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдХреНрд░рдо рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ:

  QUERY PLAN ---------------------------------------------------------------- GroupAggregate (cost=237400.11..252417.09 rows=501698 width=73) (actual time=415.541..703.647 rows=1000000 loops=1) Group Key: p, v -> Sort (cost=237400.11..239900.11 rows=1000000 width=65) (actual time=415.533..507.785 rows=1000000 loops=1) Sort Key: p, v Sort Method: external merge Disk: 73488kB -> Seq Scan on btg (cost=0.00..22346.00 rows=1000000 width=65) (actual time=0.059..139.587 rows=1000000 loops=1) Planning Time: 0.123 ms Execution Time: 742.118 ms (8 rows) 


рдФрд░ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ:

  QUERY PLAN ------------------------------------------------------ GroupAggregate (cost=237400.11..252417.09 rows=501698 width=73) (actual time=414.322..714.593 rows=1000000 loops=1) Group Key: p, v -> Sort (cost=237400.11..239900.11 rows=1000000 width=65) (actual time=414.312..517.707 rows=1000000 loops=1) Sort Key: p, v Sort Method: external merge Disk: 76384kB -> Seq Scan on btg (cost=0.00..22346.00 rows=1000000 width=65) (actual time=0.071..129.835 rows=1000000 loops=1) Planning Time: 0.140 ms Execution Time: 753.031 ms (8 rows) 


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

 CREATE INDEX ON btg(p, v); SET enable_seqscan=off; SET enable_bitmapscan=off; VACUUM btg; EXPLAIN ANALYZE SELECT count(*) FROM btg GROUP BY v, p ; 


PostgreSQL рдореЗрдВ:

  QUERY PLAN --------------------------------------------------------- GroupAggregate (cost=0.55..74660.04 rows=494408 width=73) (actual time=0.013..391.317 rows=1000000 loops=1) Group Key: p, v -> Index Only Scan using btg_p_v_idx on btg (cost=0.55..62216.16 rows=999974 width=65) (actual time=0.009..120.298 rows=1000000 loops=1) Heap Fetches: 0 Planning time: 0.078 ms Execution time: 442.923 ms (6 rows) 


рдФрд░ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ:

  QUERY PLAN ------------------------------------------------------ GroupAggregate (cost=243904.22..258848.04 rows=494408 width=73) (actual time=2558.485..3352.240 rows=1000000 loops=1) Group Key: v, p -> Sort (cost=243904.22..246404.16 rows=999974 width=65) (actual time=2558.478..3110.242 rows=1000000 loops=1) Sort Key: v, p Sort Method: external merge Disk: 76264kB -> Index Only Scan using btg_p_v_idx on btg (cost=0.55..62216.16 rows=999974 width=65) (actual time=0.011..133.563 rows=1000000 loops=1) Heap Fetches: 0 Planning time: 0.093 ms Execution time: 3409.335 ms (9 rows) 


рдЕрдм рдорд╛рдирдХ рдореЗрдВ:

  QUERY PLAN -------------------------------------------------------------- GroupAggregate (cost=0.55..74196.82 rows=501685 width=73) (actual time=0.150..412.174 rows=1000000 loops=1) Group Key: p, v -> Index Only Scan using btg_p_v_idx on btg (cost=0.55..61680.16 rows=999974 width=65) (actual time=0.134..149.669 rows=1000000 loops=1) Heap Fetches: 0 Planning Time: 0.175 ms Execution Time: 448.635 ms (6 rows) 


рдФрд░ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ:

  QUERY PLAN ------------------------------------------------------------- GroupAggregate (cost=0.55..74196.82 rows=501685 width=73) (actual time=0.014..307.258 rows=1000000 loops=1) Group Key: p, v -> Index Only Scan using btg_p_v_idx on btg (cost=0.55..61680.16 rows=999974 width=65) (actual time=0.008..89.204 rows=1000000 loops=1) Heap Fetches: 0 Planning Time: 0.054 ms Execution Time: 337.766 ms (6 rows) 


рд╕рдордп рдлрд┐рд░ рд╡рд╣реА рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╛рди рд╣реИрдВред

рдмреВрдЯ рдкрд░ рдПрдХ рдЕрд╢рдХреНрдд рдмрд╛рдЗрдЯ рдХреА рдЬрдЧрд╣


Postgres Pro рдбреЗрдЯрд╛ рдореЗрдВ рд╢реВрдиреНрдп рдмрд╛рдЗрдЯреНрд╕ (0x00) рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП COPY FROM рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА ред CSV рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╣реБрдИ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рджрд┐рдП рдЧрдП ASCII рд╡рд░реНрдг рдХреЗ рд╕рд╛рде рдирд▓ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдпрд╣ COPY FROM рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ QUOTE рдФрд░ DELIMITER рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдиреНрдпрдерд╛, рдкрд░рд┐рдгрд╛рдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЪрд░ nul_byte_replacement_on_import (string) '\ 0' рдХрд╛ рдорд╛рди, рдпрд╛рдиреА рдХреЛрдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

WaitLSN


рдПрд▓рдПрд╕рдПрди рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ , рдЕрд░реНрдерд╛рдд, рд╡рд╛рд▓ (рд▓реЙрдЧ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛) рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИред WAITLSN рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ LSN рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИред рдпрджрд┐ рдЖрд╡реЗрджрди рдорд╛рд╕реНрдЯрд░ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдордХрд╛рд▓рд┐рдХ рд╣реИрдВред WAITLSN, PostgrePro рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рдореИрдХреЗрдирд┐рдЬреНрдо рд╣реИ рдЬреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдЕрд╕реАрдорд┐рдд рд╣реИред рдЖрдк Ctrl + C рджрдмрд╛рдХрд░ рдпрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕рд░реНрд╡рд░ рдХреЛ рд░реЛрдХрдХрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк TIMEOUT рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝рдХрд░ рднреА рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ NowAIT рд╕рдВрдХреЗрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд▓рдХреНрд╖реНрдп LSN рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдЖрд╡реЗрджрди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИ, рдорд╛рд╕реНрдЯрд░ рдкрд░ рдбреАрдмреАрдПрдордПрд╕ рд╕реЗ рдПрд▓рдПрд╕рдПрди рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ рджрд░реНрдЬ рдХреА рдЧрдИ рдпрд╣ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд╣рд▓реЗ рд╣реА рдЖ рдЪреБрдХреА рд╣реИ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред WAITLSN рдЖрдкрдХреЛ рдЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, TIMEOUT рдФрд░ NowAIT рддрдХ INFINITELY рд╕реЗ рд╕реНрд▓реАрдк рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкреВрд░реНрд╡ рд░рд┐рдХрд╡рд░реА рд╕реЗ рдЪрд░ рдЪрд░ редconf


SIGHUP рд╕рд┐рдЧреНрдирд▓ рдкрд░, PostgreSQL рдкреБрди: postgresql.conf рдкрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдирд╣реАрдВ редconfред рдорд╛рдирдХ рдФрд░ рдЙрджреНрдпрдо 10.4.1 рдореЗрдВ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛ рдХрд░реНрдиреЗрд▓ рдкреИрдЪ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдлрд┐рд░ рд╕реЗ рд╡рд╕реВрд▓реА рдФрд░ рд╡рд╕реВрд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ редconfред рд▓реЗрдХрд┐рди Postgres 12 рдореЗрдВ рдХреЛрдИ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдирд╣реАрдВ рд╣реИ редconf рдлрд╝рд╛рдЗрд▓ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИ: рдЗрд╕рдореЗрдВ рд╕реЗ рд╕рднреА рдЪрд░ postgresql.conf рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╕реЗ рдЪрд░ рдХреЛ SightUP рджреНрд╡рд╛рд░рд╛ рдкреБрди: рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдорд╛рдирдХ рдореЗрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ: рд╕рдм рдХреБрдЫ рдкрдврд╝рд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

PTRACK рд╕рд╣рд╛рдпрддрд╛


PTRACK 2.0 рдорд╛рдирдХ рдФрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП 11 рдФрд░ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛ рдирдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ PTRACK рддрдВрддреНрд░ рд╣реИред DBMS рд╕реНрддрд░ рдкрд░, рдпрд╣ рдХрд░реНрдиреЗрд▓ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдкреИрдЪ рдореЗрдВ ptrack рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред PTRACK 2.0 рдбреЗрдЯрд╛ рдкреЗрдЬ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ "рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд" рд╕рдордп рдореЗрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдПрдХ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ (рдПрд▓рдПрд╕рдПрди) рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреИрдХрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рдФрд░ "рдорд╣рдВрдЧрд╛" рд╣рд┐рд╕реНрд╕рд╛, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕рд░реНрд╡рд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓реЗ рд╣реБрдП рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, PTRACK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреИрдХрдЕрдк рдХрд╛ рд╕рдордп рдХрд╛рдлреА рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

PTRACK 2.0 рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рдХреА рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕рдордп-рд╕рдордп рдкрд░ ptrack.map рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП psql рдореЗрдВ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб


WinEditLine рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП psql рдореЗрдВ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдХреЛ рдПрдбрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд┐рд░рд┐рд▓рд┐рдХ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреИрд░-рд░реВрд╕реА рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдПрдХреАрдХреГрдд рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛



рд╕рднреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд░рд╡рд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВ-рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрдШрд░реНрд╖ рдХреЗ рдПрдХ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдзреНрдпрд╛рдп 16 рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

dump_stat


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

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

рдбрдВрдк_рд╕реНрдЯреИрдЯрд┐рд╕реНрдЯрд┐рдХ рдлрд╝рдВрдХреНрд╢рди pg_statistic рд╕рд┐рд╕реНрдЯрдо рдХреИрдЯрд▓реЙрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣ pg_statistic рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ tuple рдХреЗ рд▓рд┐рдП рдПрдХ INSERT рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдЬреЛ рд╕реВрдЪрдирд╛рдУрдВ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ_schema рдФрд░ pg_catalog рд╕реНрдХреАрдорд╛ред

jsquery


рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ JSON (B) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ , рдЬреЗрдПрд╕ рдирд╣реАрдВред рдпрд╣ рдЗрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрдВрдбреЗрдХреНрд╕, JSON (B) рдореЗрдВ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрд╢рд▓ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд╣реИред рд╣рдм рдкрд░ рд▓реЗрдЦ рдореЗрдВ, рдЖрдк JSON (B) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ jsquery рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП JSONPath (рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рд╡рд┐рдХрд╛рд╕ рджреЛрдиреЛрдВ)ред

online_analyze


рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддреБрд░рдВрдд рдЙрди рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ INSERT, UPDATE, DELETE рдпрд╛ SELECT INTO рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓реЗрдЦрдХ рдлреЗрдбреЛрд░ рд╕рд┐рдЧреЗрд╡ рд╣реИрдВред

Online_analyze рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреА:

 LOAD 'online_analyze'; 


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

pg_pathman


Postgres Professional рдореЗрдВ pg_pathman рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ PostgreSQL рдХрд░реНрдиреЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдСрдкрд░реЗрд╢рди рдПрдХ рдФрд░ рджреВрд╕рд░реЗ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдШреЛрд╖рд┐рдд рд╡рд┐рднрд╛рдЬрди рдФрд░ pg_pathman рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╡рд░реНрдЧреЛрдВ рдХреЛ рди рдорд┐рд▓рд╛рдПрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдИ pg_pathman рдСрдкрд░реЗрд╢рди рдЕрднреА рднреА рддреЗрдЬрд╝ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ PostgreSQL рдореЗрдВ рдЧрд╛рдпрдм рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╕реНрд╡рдд: рдирд┐рд░реНрдорд╛рдг (рдХрд╛рдЯрдирд╛)ред PostgreSQL рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЙрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рднрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рддрдиреЗ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдЦреЗрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрд╡рдпрдВ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЬрд┐рддрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред pg_pathman рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐, PostgreSQL рдХреИрд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдкреАрдЬреА 11 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрднрд╛рдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдЙрди рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЛрдВ рдХреЛ рдбрдВрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВред

PostgreSQL рд╕рдореБрджрд╛рдп рдХреЗ рдиреЗрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭреМрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛, рдЬрдмрдХрд┐ pg_pathman рдХреА рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рдЖрдПрдВрдЧреАред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рддрдХ, pg_pathman рдЖрд╡реЗрджрди DB рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдПрдВ:

 CREATE EXTENSION pg_pathman; 


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

 create_range_partitions(relation REGCLASS, expression TEXT, start_value ANYELEMENT, p_interval INTERVAL, p_count INTEGER DEFAULT NULL, partition_data BOOLEAN DEFAULT TRUE); 

рд╣рдо рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ

 SELECT create_range_partitions('log', 'dt', NULL::date, '1 month'::interval); 


рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 SELECT add_range_partition('log', NULL, '2017-01-01'::date, 'log_archive', 'ts0'); SELECT add_range_partition('log', '2017-01-01'::date, '2017-02-01'::date, 'log_1'); SELECT add_range_partition('log', '2017-02-01'::date, '2017-03-01'::date', log_2'); 


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

 SELECT create_range_partitions('log', 'dt', '2017-01-01'::date, '1 month'::interval); 


рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЗрдмрд▓ рдкрд░, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 CREATE TABLE pg_pathmania(id serial, val float); INSERT INTO pg_pathmania(val) SELECT random() * 1000 FROM generate_series(1, 1000); SELECT create_range_partitions('pg_pathmania', 'id', 0, 50); test_parti=# \d+ pg_pathmania Table "public.pg_pathmania" Column | Type | Collation | Nullable | Default | Storage | S tats target | Description --------+------------------+-----------+----------+-----------------------+---------+------+------ id | integer | | not null | nextval('pg_pathmania_id_seq'::regclass) | plain | | val | double precision | | | | plain | | Child tables: pg_pathmania_1, pg_pathmania_10, pg_pathmania_11, pg_pathmania_12, pg_pathmania_13, pg_pathmania_14, pg_pathmania_15, pg_pathmania_16, pg_pathmania_17, pg_pathmania_18, pg_pathmania_19, pg_pathmania_2, pg_pathmania_20, pg_pathmania_21, pg_pathmania_3, pg_pathmania_4, pg_pathmania_5, pg_pathmania_6, pg_pathmania_7, pg_pathmania_8, pg_pathmania_9 


PostgreSQL рдореЗрдВ, рд╣рдореЗрдВ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрднрд╛рдЧ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдбреАрдбреАрдПрд▓ рдХреЛрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ pg_pathman рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рд╣рдо рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рд▓реЗрдВрдЧреЗ рдЬреЛ рди рдХреЗрд╡рд▓ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрдИрдбреА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдмрд╕реЗ рдкрд╛рд╕ рдореЗрдВ рднреА рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ:

 INSERT INTO pg_pathmania(id, val) VALUES (2000, 277.835794724524); 


рджреЛрдмрд╛рд░рд╛, рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ \ d + pg_pathmania рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪреЗрдВ:

 Child tables: pg_pathmania_1, pg_pathmania_10, ... pg_pathmania_39, pg_pathmania_4, pg_pathmania_40, pg_pathmania_41, 


рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ: pg_pathman рдиреЗ рджреЗрдЦрд╛ рдХрд┐ id = 2000 рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдкрд░рд┐рдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рддрдиреЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, RANGE рдЕрдВрддрд░рд╛рд▓ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЛ рдЬрд╛рдирдХрд░ рдФрд░ рдЙрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдмрдирд╛рдпрд╛ рдЬрд╣рд╛рдВ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЧрд┐рд░рддрд╛ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреБрд░рд╛рдиреЗ рдЦрдВрдбреЛрдВ рдХреА рдКрдкрд░реА рд╕реАрдорд╛ рдФрд░ рдирдП рдЦрдВрдб рдХреА рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдХреЗ рдмреАрдЪ рд╕рднреА рдЦрдВрдбред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЕрджреНрдпрддрди рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреНрд╖реЗрддреНрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЦрд░рд╛рдм рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ pg_pathman рдХрд╛ рдПрдХ рдЧрдВрднреАрд░ рд▓рд╛рдн рд╣реИред

pg_query_state


рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╣ рд╡рд┐рд╕реНрддрд╛рд░ рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 9.5 рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЬрдиреНрдо рдХреЗ рдХрд╛рд░рдг рд╣реИред

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

рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ:

pgBouncer


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

pg_probackup


pg_probackup рд╣рдорд╛рд░реЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдПрдХ рдмреИрдХрдЕрдк рдФрд░ рд░рд┐рдХрд╡рд░реА рдореИрдиреЗрдЬрд░ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдирд╛рд╕реНрддрд╛рд╕рд┐рдпрд╛ рд▓реБрдмреЗрдирд┐рдХреЛрд╡рд╛, рдЧреНрд░рд┐рдЧрд░реА рд╕реНрдореЛрд▓рдХрд┐рди рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

Pg_probackup рдХреЗ рдкреНрд░рддрд┐рдпреЛрдЧреА рд▓рд╛рдн: рдмреНрд▓реЙрдХ рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА (8KB), рддреАрди рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреИрдХрдЕрдк рдореЛрдб (PAGE, DELTA, PTRACK) рдХреЗ рд╕рд╛рде рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреИрдХрдЕрдк, рдСрди-рдбрд┐рдорд╛рдВрдб рдмреИрдХрдЕрдк рдЕрдЦрдВрдбрддрд╛ рдЬрд╛рдБрдЪ, PostgreSQL рд╕рддреНрдпрд╛рдкрди, рдмреИрдХрдЕрдк рд╕рдВрдкреАрдбрд╝рди, рдЖрдВрд╢рд┐рдХ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐, рдЖрджрд┐ред

PTRACK рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЛрдб, рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рддрдВрддреНрд░ рдХреЗ рднрд╛рдЧ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ - PTRACK 2.0 - рдЕрдм рдФрд░ рднреА рддреЗрдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм pg -probackup рдореЛрдб рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬ рдФрд░ "рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛" рддрд░реАрдХрд╛ рд╣реИред

pg_repack


pg_repack рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╕рдВрдЪрд╛рд▓рди VACUUM FULL рдпрд╛ CLUSTER рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рди рдХреЗрд╡рд▓ рдЯреЗрдмрд▓ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, voids рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХрд┐рдП рдЧрдП рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рднреМрддрд┐рдХ рдХреНрд░рдо рдХреЛ рдХреИрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЧреНрд░рд╛рд╣рдХ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ "рдЪрд▓рддреЗ-рдлрд┐рд░рддреЗ" рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рд╡рд┐рд╢реЗрд╖ рдЯреЗрдмрд▓ рдХреЗ рддрд╛рд▓реЗ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реЗрдирд┐рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

pg_variables


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

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

 SELECT pgv_set_int('package','#'||n,n), n FROM generate_series(1,1000000) AS gs(n); 


рдЪрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрдкрддреНрддрд┐ рд╣реИ: рдмрдЧ рдпрд╛ рд▓рд╛рдн рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛: рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд╣рд░ рдореМрдЬреВрдж рд╣реИ - рд╡реЗ рдПрдХ рд▓реЗрдирджреЗрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рд░реЛрд▓рдмреИрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛрдиреЛрдВ рдмрдЪрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрд▓рдЧ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдВрд╢рд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 SELECT pgv_insert('package', 'errs', row(n)) FROM generate_series(1,5) AS gs(n) WHERE 1.0/(n-3)<>0; ERROR: there is a record in the variable "errs" with same key test_parti=# SELECT * FROM pgv_select('package','errs') AS r(i int); i --- 1 2 (2 rows) 


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

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдХреБрдЫ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди:

sr_plan, рдмрд╛рдЧрд╡рд╛рди


sr_plan рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:

 SET sr_plan.write_mode = true; 


рдЙрд╕рдХреЗ рдмрд╛рдж, рдмрд╛рдж рдХреЗ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдпреЛрдЬрдирд╛ sr_plans рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЪрд░ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рди рд╣реЛ рдЬрд╛рдПред рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдпреЛрдЬрдирд╛, рдЬрд┐рдирдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдкреНрд▓рд╛рдирд░ рдХрд┐рд╕реА рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрдЪрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рд╕рдВрдХреЗрдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рджреЛ GUC рдЪрд░ рд╣реИрдВ: enable_index / desable_index:

 SET plantuner.disable_index='id_idx2'; 


рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди: рд╕рд╛рдЭрд╛_рдЗрд╕реНрдкреЗрд▓, pg_tsparser


Share_ispell рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЬреЛ рдЖрдкрдХреЛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдореЗрдВ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдорд╛рдирдХ рдореЗрдВ рд╣реИ рдФрд░ PostgreSQL рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рд╣рдВрд╕реЗрд▓-рддрд╛рдирд╛рд╢рд╛рд╣ рд╕реЗрдЯ рдореЗрдВ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢ рд╣реИрдВ:

  • hunspell_en_us,
  • hunspell_fr,
  • hunspell_nl_nl,
  • hunspell_ru_ru


Pg_tsparser рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд╛рда рдЦреЛрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ ред рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкрд╛рда рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЕрдВрдХ рдФрд░ рдЕрдХреНрд╖рд░ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реМрдЯреЗ рд╢рдмреНрдж рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, pg_tsparser рд╕рдВрдкреВрд░реНрдг рд╢рдмреНрдж рднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рддрдХрдиреАрдХреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ "pg_tsparser", "pg_probackup", "jsonb_build_object" рдЬреИрд╕реЗ рд╢рдмреНрдж рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╛рд░реНрд╕рд░ рдЗрди рд╢рдмреНрджреЛрдВ рдХреЛ рди рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдПрдХрд▓ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╣реИ, рдФрд░ рдЬрд┐рд╕рд╕реЗ рдЦреЛрдЬ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

1 рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди


  • Microsoft SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП mchar рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ;
  • fulleq - Microsoft SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ;
  • fasttrun тАФ - , pg_class.


, PostgresPro Standard PostgreSQL. , , , , .

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


All Articles