рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ

рдирдорд╕реНрддреЗред

рдореИрд▓реЗ рдореЗрд░реЛ рдЦреЛрдЬ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗ - рд╕реЛрдЪ, рдкрд░реАрдХреНрд╖рдг рд░ рддреНрд░реБрдЯрд┐рдХреЛ рдлрд▓ред
рд░ рдареВрд▓реЛ рд░реВрдкрдорд╛: рдпреЛ рдЦреЛрдЬ рд╣реЛрдЗрди, рдЕрд╡рд╢реНрдп рдкрдирд┐ - рдпреЛ рд╕рдмреИ рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫ, рдЬреЛ рд▓рд╛рдЧреВ рддрдереНрдпрд╛рдЩреНрдХреАрдп рдбреЗрдЯрд╛ рдкреНрд░рд╢реЛрдзрди рд░ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирдорд╛ рд╕рдВрд▓рдЧреНрди рдЫрдиреН, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА DBMS рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред
рд░: рд╣реЛ, рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, рдЙрдиреАрд╣рд░реВрд▓реЗ рдЖрдлреНрдиреЛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдорд╛ рд░реЛрдЪрдХ рд▓реЗрдЦ рд▓реЗрдЦреНрдЫрдиреН, рдПрдХ рдЙрджрд╛рд╣рд░рдг (UPDред: рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдПрдХ рдзреЗрд░реИ рд░реЛрдЪрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрдВрд▓реНрдпрд╛рдП: ottertune )
рдЕрд░реНрдХреЛрддрд░реНрдл: рдЕрдлрд╣реНрдпрд╛рдиреНрдб рдореИрд▓реЗ IT рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВ, DBA рдмреАрдЪ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдХреБрдиреИ рд╡реНрдпрд╛рдкрдХ рдЙрд▓реНрд▓реЗрдЦ рд╡рд╛ рдкреНрд░рд╕рд╛рд░ рджреЗрдЦреНрджрд┐рдиред

рддреНрдпрд╕реИрд▓реЗ, рдмрд┐рдиреНрджреБрдорд╛ред

рдорд╛рдиреМрдВ рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдп рдЫ: рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рдХрд╛рдордХреЛ рд╕реЗрд╡рд╛ рдЧрд░реНрди рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиред

рдпреЛ рдХрд╛рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдерд╛рд╣рд╛ рдЫ: рдпреЛ рдХреЗ рд╣реЛ, рдпреЛ рдХрд╛рдордХреЛ рдЧреБрдгрд╕реНрддрд░ рдХрд╕рд░реА рдорд╛рдкрди рдЧрд░рд┐рдиреНрдЫ, рд░ рдпреЛ рдЧреБрдгрд╕реНрддрд░ рдирд╛рдкреНрдиреЗ рдорд╛рдкрджрдгреНрдб рдХреЗ рд╣реЛред

рдпреЛ рдкрдирд┐ рдорд╛рдиреМрдВ рдХрд┐ рдпреЛ рдХрдо рд╡рд╛ рдХрдо рдЬреНрдЮрд╛рдд рд░ рдмреБрдЭрд┐рдПрдХреЛ рдЫ: рдпреЛ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ (рд╡рд╛ рд╕рдВрдЧ) рдХрд╛рдо рдХрд╕рд░реА рдЧрд░рд┐рдиреНрдЫред

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

рдЦреИрд░, рдорд╛рдиреМрдВ рдХрд┐ рдпреЛ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рдпреЛрдЬрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд╕реЗрдЯ рдЬреНрдЮрд╛рдд рдЫ, рдЬреБрди рдпрд╕ рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдпрд╕рдХреЛ рдХрд╛рдордХреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

рд░рд╛рдореНрд░реЛред рдпреЛ рд▓рдЧрднрдЧ рд╕рдзреИрдВ рдорд╛рдорд▓рд╛ рд╣реЛред

рддрдкрд╛рдИрдВ рдпрд╣рд╛рдБ рдХреЗ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ?

рдард┐рдХ рдЫ, рджрд┐рдорд╛рдЧрдорд╛ рдЖрдЙрдиреЗ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рдпреЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд╣реЗрд░реНрдиреБ рд╣реЛред рд╕рдорд╛рдпреЛрдЬрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡реАрдХрд╛рд░реНрдп рджрд╛рдпрд░рд╛рд╣рд░реВ рдХреЗ рд╣реБрдиреН рдмреБрдЭреНрдиреБрд╣реЛрд╕реНред рд░, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рдордиреНрд╡рдп рд╡рдВрд╢ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рдкреНрд░рдгрд╛рд▓реА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рддреАред рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рджрд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирд╣рд░реВрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрдХреЛ рд░реВрдкрдорд╛ред

рдпреЛ рдзреЗрд░реИ рдЙрдкрдХрд░рдг-рдЙрдкрдпреЛрдЧрд┐рддрд╛, рд▓реЛрдб рдЬрдирд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдпрд╕рд▓рд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓реЛрдб рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд░ рдорд╛рди рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЧреБрдгрд╕реНрддрд░рдХреЛ рдореЗрдЯреНрд░рд┐рдХред

рджреЛрд╕реНрд░реЛ рд╡рд┐рдЪрд╛рд░ рдпреЛ рдзреЗрд░реИ рд▓рд╛рдореЛ рд╕рдордп рд╣реЛ рднрдиреНрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реБрди рд╕рдХреНрдЫред

рдареАрдХ рдЫ, рддреНрдпреЛ рд╣реЛ: рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕реЗрдЯрд┐рдЩ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдЫрдиреН, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдорд╛рдирд╣рд░реВрдХреЛ рджрд╛рдпрд░рд╛рд╣рд░реВ рдареВрд▓рд╛ рдЫрдиреН рднрдиреЗ, рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдкреВрд░рд╛ рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рд▓рд╛рдЧреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐: рд╣реЛ, рдпреЛ рд╕рдмреИ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдкрдорд╛ рд▓рд┐рди рд╕рдХреНрдЫред рд▓рд╛рдореЛ рд╕рдордпред

рдард┐рдХ рдЫ, рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрди рд░ рд╕рдореНрдЭрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗрдЯрд┐рдЩ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрдХреЛ рд╕реЗрдЯрдорд╛ рдХреЗрд╣реА рдорд╛рдирд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдордХреЛ рд░реВрдкрдорд╛ рднреЗрдХреНрдЯрд░ рдЫред

рдкреНрд░рддреНрдпреЗрдХ рдпрд╕реНрддреЛ рднреЗрдХреНрдЯрд░, рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдмрд░рд╛рдмрд░ рдЫрдиреН (рдпрд╕ рд╡реЗрдХреНрдЯрд░рдмрд╛рдЯ рдкреНрд░рднрд╛рд╡рд┐рдд рдЫреИрди), рдореЗрдЯреНрд░рд┐рдХрдХреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ - рдкрд░реАрдХреНрд╖рдг рд▓реЛрдб рдЕрдиреНрддрд░реНрдЧрдд рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдЧреБрдгрд╕реНрддрд░рдХреЛ рд╕реВрдЪрдХред

рдЕрд░реНрдерд╛рддреН

рдкреНрд░рдгрд╛рд▓реА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рднреЗрдХреНрдЯрд░рд▓рд╛рдИ рдпрд╕ рд░реВрдкрдорд╛ рдмреБрдЭреМрдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗрдХрд╣рд╛рдБ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ; рдХрд╣рд╛рдБ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ тАФ рдкреНрд░рдгрд╛рд▓реА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛, рдпреА рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдХрддрд┐ рдЫрдиреНред

рд░ рдпреЛ рд╕рдВрдЧрдд рдореЗрдЯреНрд░рд┐рдХ рдХреЛ рдорд╛рди рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ рдХреЛ рд░реВрдкрдорд╛ рдмреБрдЭреМрдВ
рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рдкрд╛рдЙрдБрдЫреМрдВ: рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ

рдард┐рдХ рдЫ, рддреНрдпрд╕реЛрднрдП: рд╕рдмреИ рдХреБрд░рд╛ рддреБрд░реБрдиреНрддреИ рддрд▓ рдЖрдЙрдБрдЫ, рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛: рд▓рдЧрднрдЧ рдореЗрд░реЛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рджрд┐рдирджреЗрдЦрд┐ рдмрд┐рд░реНрд╕рд┐рдПрдХреЛ, рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдЪрд░рдо рдЦреЛрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдоред

рдареАрдХ рдЫ, рддрд░ рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╕рдВрдЧрдардирд╛рддреНрдордХ рд░ рд▓рд╛рдЧреВ рдкреНрд░рд╢реНрди рдЙрдареНрдЫ: рдХреБрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗред

  1. рдЕрд░реНрдердорд╛ - рддрд╛рдХрд┐ рддрдкрд╛рдИрдВ рд╣рд╛рддрд▓реЗ рдХрдо рдХреЛрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
  2. рд░ рдпреЛ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, i.e. extremum (рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдЫ рднрдиреЗ), рд░рд╛рдореНрд░реЛ, рдХрдореНрддрд┐рдорд╛ рд╕рдордиреНрд╡рдп рд╡рдВрд╢ рднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдпреЛред

рдкрд╣рд┐рд▓реЛ рдмрд┐рдиреНрджреБрд▓реЗ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣рд┐ рд╡рд╛рддрд╛рд╡рд░рдгрд╣рд░реВ рддрд┐рд░ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫ рдЬрд╕рдорд╛ рддреНрдпрд╕реНрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рд▓рд╛рдЧреВ рднрдЗрд╕рдХреЗрдХрд╛ рдЫрдиреН, рд░ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛, рдХреЛрдбрдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рдЫрдиреНред
рдЦреИрд░, рдорд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ python ╨╕ cran-r

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

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

рд╡рд╛ рддрд┐рдиреАрд╣рд░реВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордХреЛ рдирддрд┐рдЬрд╛рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдзреЗрд░реИ рдЗрдирдкреБрдЯ рд╕рд░реНрддрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред

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

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

рдо рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдХрд╛рдорд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫреБ, рдкреНрд░рдгрд╛рд▓реА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЪрдпрди рдЧрд░реНрджреИ, рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдЕрд░реНрдХреЛрдорд╛, рддреНрдпрд╕реЛрднрдП: рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдХрд╛рдоред

рдореВрд▓:

  1. рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░реВрдкрдорд╛ рддреНрдпрд╣рд╛рдБ рд╣реБрди рджрд┐рдиреБрд╣реЛрд╕реН: oracle xe 18c
  2. рдпрд╕рд▓рд╛рдИ рд▓реЗрдирджреЗрди рдЧрддрд┐рд╡рд┐рдзрд┐ рд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рджрд╛рди рдЧрд░реНрди рджрд┐рдиреБрд╣реЛрд╕реН: рд▓реЗрдирджреЗрди/рд╕реЗрдХреЗрдиреНрдбрдорд╛ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдХреЛ рдЙрдЪреНрдЪрддрдо рд╕рдореНрднрд╛рд╡рд┐рдд рдереНрд░реБрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред
  3. рдбреЗрдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдХреГрддрд┐ рд░ рдХрд╛рдордХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд▓реЗрдирджреЗрдирд╣рд░реВ рдзреЗрд░реИ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫрдиреНред
    рд╕рд╣рдордд рдЧрд░реМрдВ рдХрд┐ рдпреА рд▓реЗрдирджреЗрдирд╣рд░реВ рд╣реБрдиреН рдЬрд╕рд▓реЗ рдЯреНрдпрд╛рдмреБрд▓рд░ рдбреЗрдЯрд╛рдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИрдиред
    рдпрд╕ рдЕрд░реНрдердорд╛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд░рд┐рдбреВ рднрдиреНрджрд╛ рдмрдвреА рдЕрдирдбреВ рдбрд╛рдЯрд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИрдирдиреН рд░ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рд░ рдареВрд▓рд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдХреЛ рдареВрд▓реЛ рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИрдирдиреНред

рдпреА рд▓реЗрдирджреЗрдирд╣рд░реВ рд╣реБрдиреН рдЬрд╕рд▓реЗ рдпрд╕ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдереЛрд░реИ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдХреЛ рд╕рд╛рде, рдХрдо рд╡рд╛ рдХрдо рдареВрд▓реЛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдПрдЙрдЯрд╛ рдкрдЩреНрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрдЫред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛: рдкреНрд░рд╢реЛрдзрди рд▓реЗрдирджреЗрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдХреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛, рд░рд┐рдЬрд░реНрднреЗрд╕рдирдХреЛ рд╕рд╛рде, рд░реЗрдбрдХреНрд╕ рдбрд╛рдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрдирдХреЛ рдЧреБрдгрд╕реНрддрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреЗрдЫред

рдЕрд╕реНрд╡реАрдХрд░рдг - рдпрджрд┐ рд╣рд╛рдореА рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ subdb рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫреМрдВред

рдХрд┐рдирднрдиреЗ, рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛рдорд╛, рддреНрдпрд╣рд╛рдБ рд╣реБрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, SQL рд╕рддреНрд░рд╣рд░реВ рдмреАрдЪрдХреЛ рд▓реЗрдирджреЗрди рд▓рдХрд╣рд░реВ, рдЯреНрдпрд╛рдмреБрд▓рд░ рдбреЗрдЯрд╛ рд░/рд╡рд╛ рдЯреНрдпрд╛рдмреБрд▓рд░ рдореЛрдбреЗрд▓рд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдХрд╛рдордХреЛ рдбрд┐рдЬрд╛рдЗрдирдХреЛ рдХрд╛рд░рдгрд▓реЗред

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

рддреНрдпрд╕рдХрд╛рд░рдг, рдкреНрд░рдпреЛрдЧрдХреЛ рд╢реБрджреНрдзрддрд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдпреЛ рдХрд╛рд░рдХрд▓рд╛рдИ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ, рд░ рддрд▓ рдо рдХрд╕рд░реА рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрдиреЗрдЫреБред

  1. рд╣рд╛рдореА рдорд╛рдиреМрдВ, рдирд┐рд╢реНрдЪрд┐рддрддрд╛рдХрд╛ рд▓рд╛рдЧрд┐, рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдкреЗрд╢ рдЧрд░рд┐рдПрдХрд╛ SQL рдЖрджреЗрд╢рд╣рд░реВрдХреЛ резрежреж% DML рдЖрджреЗрд╢рд╣рд░реВ рд╣реБрдиреНред
    рдЙрдкрдбрд╛рдЯрд╛рдмреЗрд╕рд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдХрд╛рдордХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрд▓рд╛рдИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рд╕рдорд╛рди рд╣реБрди рджрд┐рдиреБрд╣реЛрд╕реНред
    рдЕрд░реНрдерд╛рддреН: skl рд╕рддреНрд░рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛, рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдХрд╕рд░реА skl рд╕рддреНрд░рд╣рд░реВ рдХрд╛рдо рдЧрд░реНрдЫрдиреНред
  2. Subd рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ FORCE LOGGING, ARCHIVELOG рдореЛрдбрд╣рд░реВред рдлреНрд▓реНрдпрд╛рд╕рдмреНрдпрд╛рдХ-рдбреЗрдЯрд╛рдмреЗрд╕ рдореЛрдб рдмрдиреНрдж рдЫ, subd рд╕реНрддрд░рдорд╛ред
  3. рд▓рдЧрд╣рд░реВ рдкреБрди: рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдЫреБрдЯреНрдЯреИ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд, рдЫреБрдЯреНрдЯреИ "рдбрд┐рд╕реНрдХ" рдорд╛;
    рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдмрд╛рдБрдХреА рднреМрддрд┐рдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ: рдЕрд░реНрдХреЛрдорд╛, рдЫреБрдЯреНрдЯреИ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА, рдЫреБрдЯреНрдЯреИ "рдбрд┐рд╕реНрдХ" рдорд╛:

рднреМрддрд┐рдХ рдЙрдкрдХрд░рдг рдмрд╛рд░реЗ рдердк рд╡рд┐рд╡рд░рдгред рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдШрдЯрдХ

SQL> select status||' '||name from v$controlfile;
 /db/u14/oradata/XE/control01.ctl
SQL> select GROUP#||' '||MEMBER from v$logfile;
1 /db/u02/oradata/XE/redo01_01.log
2 /db/u02/oradata/XE/redo02_01.log
SQL> select FILE_ID||' '||TABLESPACE_NAME||' '||round(BYTES/1024/1024,2)||' '||FILE_NAME as col from dba_data_files;
4 UNDOTBS1 2208 /db/u14/oradata/XE/undotbs1_01.dbf
2 SLOB 128 /db/u14/oradata/XE/slob01.dbf
7 USERS 5 /db/u14/oradata/XE/users01.dbf
1 SYSTEM 860 /db/u14/oradata/XE/system01.dbf
3 SYSAUX 550 /db/u14/oradata/XE/sysaux01.dbf
5 MONITOR 128 /db/u14/oradata/XE/monitor.dbf
SQL> !cat /proc/mounts | egrep "/db/u[0-2]"
/dev/vda1 /db/u14 ext4 rw,noatime,nodiratime,data=ordered 0 0
/dev/mapper/vgsys-ora_redo /db/u02 xfs rw,noatime,nodiratime,attr2,nobarrier,inode64,logbsize=256k,noquota 0 0

рд╕реБрд░реБрдорд╛, рдпреА рд▓реЛрдб рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рдо рд▓реЗрдирджреЗрди subd рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдереЗрдВ SLOB-рдЙрдкрдпреЛрдЧрд┐рддрд╛
рдпрд╕рдорд╛ рдпрд╕реНрддреЛ рдЕрджреНрднреБрдд рд╕реБрд╡рд┐рдзрд╛ рдЫ, рдо рд▓реЗрдЦрдХрд▓рд╛рдИ рдЙрджреНрдзреГрдд рдЧрд░реНрдиреЗрдЫреБ:

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

рдпреЛ рдШреЛрд╖рдгрд╛: рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рдпреЛ рд╣реЛред
рдпреЛ cl рд╕рддреНрд░ рдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХреЛ рдбрд┐рдЧреНрд░реА рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ, рдпреЛ рдХреБрдЮреНрдЬреА рд╣реЛ -t рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН runit.sh SLOB рдмрд╛рдЯ
DML рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рд╢рдд рд╡рд┐рдирд┐рдпрдорд┐рдд рд╣реБрдиреНрдЫ, рдкрд╛рда рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЬреБрди subd рдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рда рд╕рддреНрд░, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ UPDATE_PCT
рдЕрд▓рдЧ рд░ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ: SLOB рдЖрдлреИ, рд▓реЛрдб рд╕рддреНрд░ рдЕрдШрд┐ рд░ рдкрдЫрд┐ - рд╕реНрдЯреНрдпрд╛рдЯрд╕реНрдкреНрдпрд╛рдХ, рд╡рд╛ awr-рд╕реНрдиреНрдпрд╛рдкрд╕рдЯрд╣рд░реВ (рдХреЗ рддрдпрд╛рд░ рд╣реБрди рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ) рддрдпрд╛рд░ рдЧрд░реНрджрдЫред

рддрд░, рдпрд╕реНрддреЛ рднрдпреЛ SLOB рейреж рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдХрдордХреЛ рдЕрд╡рдзрд┐рдорд╛ SQL рд╕рддреНрд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред
рддреНрдпрд╕рдХрд╛рд░рдг, рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рд▓реЛрдбрд░рдХреЛ рдЖрдлреНрдиреИ, рдордЬрджреБрд░-рдХрд┐рд╕рд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЛрдб рдЧрд░реЗрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рд░рд╣реНрдпреЛред

рдорд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд▓реЛрдбрд░рд▓реЗ рдХреЗ рдЧрд░реНрдЫ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдЧрд░реНрдЫ рднрдиреЗрд░ рд╕реНрдкрд╖реНрдЯ рдкрд╛рд░реНрдЫреБред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд▓реЛрдбрд░ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛрдб

function dotx()
{
local v_period="$2"
[ -z "v_period" ] && v_period="0"
source "/home/oracle/testingredotrac╨╡/config.conf"

$ORACLE_HOME/bin/sqlplus -S system/${v_system_pwd} << __EOF__
whenever sqlerror exit failure
set verify off
set echo off
set feedback off

define wnum="$1"
define period="$v_period"
set appinfo worker_&&wnum

declare
 v_upto number;
 v_key  number;
 v_tots number;
 v_cts  number;
begin
 select max(col1) into v_upto from system.testtab_&&wnum;
 SELECT (( SYSDATE - DATE '1970-01-01' ) * 86400 ) into v_cts FROM DUAL;
 v_tots := &&period + v_cts;
 while v_cts <= v_tots
 loop
  v_key:=abs(mod(dbms_random.random,v_upto));
  if v_key=0 then
   v_key:=1;
  end if;
  update system.testtab_&&wnum t
  set t.object_name=translate(dbms_random.string('a', 120), 'abcXYZ', '158249')
  where t.col1=v_key
  ;
  commit;
  SELECT (( SYSDATE - DATE '1970-01-01' ) * 86400 ) into v_cts FROM DUAL;
 end loop;
end;
/

exit
__EOF__
}
export -f dotx

рдХрд╛рдорджрд╛рд░рд╣рд░реВ рдпрд╕рд░реА рд╕реБрд░реВ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН:

рджреМрдбрд┐рд░рд╣реЗрдХрд╛ рдХрд╛рдорджрд╛рд░рд╣рд░реВ

echo "starting test, duration: ${TEST_DURATION}" >> "$v_logfile"
for((i=1;i<="$SQLSESS_COUNT";i++))
do
 echo "sql-session: ${i}" >> "$v_logfile"
 dotx "$i" "${TEST_DURATION}" &
done
echo "waiting..." >> "$v_logfile"
wait

рд░ рдХрд╛рдорджрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдпрд╕рд░реА рддрдпрд╛рд░ рдЫрдиреН:

рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

function createtable() {
source "/home/oracle/testingredotrac╨╡/config.conf"
$ORACLE_HOME/bin/sqlplus -S system/${v_system_pwd} << __EOF__
whenever sqlerror continue
set verify off
set echo off
set feedback off

define wnum="$1"
define ts_name="slob"

begin
 execute immediate 'drop table system.testtab_&&wnum';
exception when others then null;
end;
/

create table system.testtab_&&wnum tablespace &&ts_name as
select rownum as col1, t.*
from sys.dba_objects t
where rownum<1000
;
create index testtab_&&wnum._idx on system.testtab_&&wnum (col1);
--alter table system.testtab_&&wnum nologging;
--alter index system.testtab_&&wnum._idx nologging;
exit
__EOF__
}
export -f createtable

seq 1 1 "$SQLSESS_COUNT" | xargs -n 1 -P 4 -I {} -t bash -c "createtable "{}"" | tee -a "$v_logfile"
echo "createtable done" >> "$v_logfile"

рддреАред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ (рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛: DB рдорд╛ рдЫреБрдЯреНрдЯреИ SQL рд╕рддреНрд░) рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдЗрдиреНрдЫ, рдЬрд╕рд╕рдБрдЧ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫред

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

рдПрдХ statspack рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдПрдХ рдЯреБрдХреНрд░рд╛ рд▓реЛрдб рдЕрдиреНрддрд░реНрдЧрдд subd рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рд╡рд░реНрдгрди

Database    DB Id    Instance     Inst Num  Startup Time   Release     RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
          2929910313 XE                  1 07-Sep-20 23:12 18.0.0.0.0  NO

Host Name             Platform                CPUs Cores Sockets   Memory (G)
~~~~ ---------------- ---------------------- ----- ----- ------- ------------
     billing.izhevsk1 Linux x86 64-bit           2     2       1         15.6

Snapshot       Snap Id     Snap Time      Sessions Curs/Sess Comment
~~~~~~~~    ---------- ------------------ -------- --------- ------------------
Begin Snap:       1630 07-Sep-20 23:12:27       55        .7
  End Snap:       1631 07-Sep-20 23:20:29       62        .6
   Elapsed:       8.03 (mins) Av Act Sess:       8.4
   DB time:      67.31 (mins)      DB CPU:      15.01 (mins)

Cache Sizes            Begin        End
~~~~~~~~~~~       ---------- ----------
    Buffer Cache:     1,392M              Std Block Size:         8K
     Shared Pool:       288M                  Log Buffer:   103,424K

Load Profile              Per Second    Per Transaction    Per Exec    Per Call
~~~~~~~~~~~~      ------------------  ----------------- ----------- -----------
      DB time(s):                8.4                0.0        0.00        0.20
       DB CPU(s):                1.9                0.0        0.00        0.04
       Redo size:        7,685,765.6              978.4
   Logical reads:           60,447.0                7.7
   Block changes:           47,167.3                6.0
  Physical reads:                8.3                0.0
 Physical writes:              253.4                0.0
      User calls:               42.6                0.0
          Parses:               23.2                0.0
     Hard parses:                1.2                0.0
W/A MB processed:                1.0                0.0
          Logons:                0.5                0.0
        Executes:           15,756.5                2.0
       Rollbacks:                0.0                0.0
    Transactions:            7,855.1

рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдХреЛ рдХрд╛рдордорд╛ рдлрд░реНрдХрд┐рдБрджреИред
рд╣рд╛рдореА, рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдмрд░рд╛рдмрд░ рд╣реБрдБрджрд╛, рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдХреЛ рдирд┐рдореНрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ рднрд┐рдиреНрди рд╣реБрдиреЗрдЫреМрдВ:

  1. рдбрд╛рдЯрд╛рдмреЗрд╕ рд▓рдЧ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рдЖрдХрд╛рд░ред рдорд╛рди рджрд╛рдпрд░рд╛: [рейреи, резрежреирек] рдПрдордмреА;
  2. рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрд░реНрдирд▓ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ред рдорд╛рди рджрд╛рдпрд░рд╛: [реи,рейреи];
  3. log_archive_max_processes рдорд╛рди рджрд╛рдпрд░рд╛: [рез,рео];
  4. commit_logging рджреБрдИ рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдЫ: batch|immediate;
  5. commit_wait рджреБрдИ рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдЫ: wait|nowait;
  6. log_buffer рдорд╛рди рджрд╛рдпрд░рд╛: [реи.резреирео] рдПрдордмреАред
  7. log_checkpoint_timeout рдорд╛рди рджрд╛рдпрд░рд╛: [60,1200] рд╕реЗрдХреЗрдиреНрдб
  8. db_writer_processes рдореВрд▓реНрдп рджрд╛рдпрд░рд╛: [рез,рек]
  9. undo_retention рдорд╛рди рджрд╛рдпрд░рд╛: [рейреж; рейрежреж] рд╕реЗрдХреЗрдиреНрдб
  10. transactions_per_rollback_segment рдореВрд▓реНрдп рджрд╛рдпрд░рд╛: [рез,рек]
  11. disk_asynch_io рджреБрдИ рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдЫ: true|false;
  12. filesystemio_options рдирд┐рдореНрди рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ: none|setall|directIO|asynch;
  13. db_block_checking рдирд┐рдореНрди рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ: OFF|LOW|MEDIUM|FULL;
  14. db_block_checksum рдирд┐рдореНрди рдорд╛рдирд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ: OFF|TYPICAL|FULL;

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

рддрд░ред

рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдХрд╛рд░реНрдпрдХреЛ рдмрд┐рдиреНрджреБ рдпреЛ рджреЗрдЦрд╛рдЙрдиреБ рд╣реЛ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЖрдлреИрд▓реЗ рдпреЛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЪрд╛рдБрдбреИ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрдиреЗрдЫред

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

рддреНрдпрд╕реИрд▓реЗ, рдЕрдм рдХреЛрдб рдмрд╛рд░реЗред
рдореИрд▓реЗ рдорд╛рдерд┐ рдХреБрд░рд╛ рдЧрд░реЗрдХреЛ рдЫреБ cran-r, рдЕрд░реНрдерд╛рддреН: рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╕рдБрдЧ рд╕рдмреИ рд╣реЗрд░рдлреЗрд░рд╣рд░реВ рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдЕрд░реНрдХрд╛рд╕реНрдЯреНрд░реЗрдЯреЗрдб рдЫрдиреНред

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

рд░ рдореЗрд░реЛ рднреЗрдХреНрдЯрд░, рд╕реЗрдЯрд┐рдЩ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрдмрд╛рдЯ: рдпреА 14 рдорд╛рддреНрд░рд╛рд╣рд░реВ рд╣реБрдиреН - рдкреВрд░реНрдгрд╛рдВрдХ рд░ рд╕реНрдЯреНрд░рд┐рдЩ рдорд╛рдирд╣рд░реВред

рд╕рдорд╕реНрдпрд╛, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╕реНрдЯреНрд░рд┐рдЩ рдорд╛рдирд╣рд░реВрдорд╛ рдХреЗрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рдЕрд╕рд╛рдЗрди рдЧрд░реЗрд░ рд╕рдЬрд┐рд▓реИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдиреНрдЫред

рдпрд╕рд░реА, рдЕрдиреНрддрдорд╛, R рд▓рд┐рдкрд┐рдХреЛ рдореБрдЦреНрдп рдЯреБрдХреНрд░рд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

GA::ga рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН

cat( "", file=v_logfile, sep="n", append=F)

pSize = 10
elitism_value=1
pmutation_coef=0.8
pcrossover_coef=0.1
iterations=50

gam=GA::ga(type="real-valued", fitness=evaluate,
lower=c(32,2, 1,1,1,2,60,1,30,1,0,0, 0,0), upper=c(1024,32, 8,10,10,128,800,4,300,8,10,40, 40,30),
popSize=pSize,
pcrossover = pcrossover_coef,
pmutation = pmutation_coef,
maxiter=iterations,
run=4,
keepBest=T)
cat( "GA-session is done" , file=v_logfile, sep="n", append=T)
gam@solution

рдпрд╣рд╛рдБ, рдорджреНрджрдд рд╕рдВрдЧ lower ╨╕ upper subroutine рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ ga рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдЦреЛрдЬ рд╕реНрдкреЗрд╕рдХреЛ рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕ рднрд┐рддреНрд░ рдпрд╕реНрддреЛ рднреЗрдХреНрдЯрд░ (рд╡рд╛ рднреЗрдХреНрдЯрд░рд╣рд░реВ) рдХреЛ рд▓рд╛рдЧрд┐ рдЦреЛрдЬреА рдЧрд░рд┐рдиреЗрдЫ рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдиреЗрдЫред

ga рд╕рдмрд░реБрдЯрд┐рдирд▓реЗ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЕрдзрд┐рдХрддрдо рдмрдирд╛рдЙрдБрджреИ рдЦреЛрдЬ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред

рдареАрдХ рдЫ, рддреНрдпрд╕рдкрдЫрд┐, рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХрд┐ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдп, subd рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирд╣рд░реВрдХреЛ рд╕реЗрдЯрдХреЛ рд░реВрдкрдорд╛ рднреЗрдХреНрдЯрд░ рдмреБрдЭреНрди, subd рдмрд╛рдЯ рдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред

рддреНрдпреЛ рд╣реЛ: рдХрддрд┐, рджрд┐рдЗрдПрдХреЛ subd рд╕реЗрдЯрдЕрдк рд░ subd рдорд╛ рджрд┐рдЗрдПрдХреЛ рд▓реЛрдб рд╕рдВрдЧ: subd рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рд▓реЗрдирджреЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ред

рддреНрдпреЛ рд╣реЛ, рдЬрдм рдЦреБрд▓рд╛рд╕рд╛ рд╣реБрдиреНрдЫ, рдирд┐рдореНрди рдмрд╣реБ-рдЪрд░рдгрд╣рд░реВ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдп рднрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреБ рдкрд░реНрдЫ:

  1. рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдХреЛ рдЗрдирдкреБрдЯ рднреЗрдХреНрдЯрд░ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИ - рдпрд╕рд▓рд╛рдИ рд╕рдмрдбреЗрдЯрд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрджреИред
  2. рджрд┐рдЗрдПрдХреЛ рд╕рд╛рдЗрдЬрдХреЛ рд░рд┐рдбреВ рд╕рдореВрд╣рд╣рд░реВрдХреЛ рджрд┐рдЗрдПрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ред рдпрд╕рдмрд╛рд╣реЗрдХ, рдкреНрд░рдпрд╛рд╕ рдЕрд╕рдлрд▓ рд╣реБрди рд╕рдХреНрдЫред
    рдкреНрд░рдпреЛрдЧрдХреЛ рд╢реБрджреНрдзрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмрдбрдорд╛, рдХреЗрд╣реА рдорд╛рддреНрд░рд╛рдорд╛ рд░ рдХреЗрд╣реА рд╕рд╛рдЗрдЬрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдкрддреНрд░рд┐рдХрд╛ рд╕рдореВрд╣рд╣рд░реВ - d.b. рдореЗрдЯрд╛рдЗрдпреЛред
  3. рдпрджрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рдмрд┐рдиреНрджреБ рд╕рдлрд▓ рдЫ рднрдиреЗ: рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджреИ (рдлреЗрд░рд┐: рддреНрдпрд╣рд╛рдБ рд╡рд┐рдлрд▓рддрд╛ рд╣реБрди рд╕рдХреНрдЫ)
  4. рдпрджрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдг рд╕рдлрд▓ рдЫ рднрдиреЗ: subd рд░реЛрдХреНрджреИ, рдирдпрд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛рдирд╣рд░реВ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдиреЗ рдЧрд░реА subd рд╕реБрд░реБ рдЧрд░реНрджреИред (рдлреЗрд░рд┐: рддреНрдпрд╣рд╛рдБ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрди рд╕рдХреНрдЫ)
  5. рдпрджрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рдЪрд░рдг рд╕рдлрд▓ рднрдпреЛ рднрдиреЗ: рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред subd рдмрд╛рдЯ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  6. subd рд▓рд╛рдИ рдпрд╕рдХреЛ рдореВрд▓ рд╕реНрдерд┐рддрд┐рдорд╛ рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реН, рдЕрд░реНрдерд╛рддреН рдердк рд▓рдЧ рд╕рдореВрд╣рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН, рдореВрд▓ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдХрд╛рдордорд╛ рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реНред

рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдб

evaluate=function(p_par) {
v_module="evaluate"
v_metric=0
opn=NULL
opn$rg_size=round(p_par[1],digit=0)
opn$rg_count=round(p_par[2],digit=0)
opn$log_archive_max_processes=round(p_par[3],digit=0)
opn$commit_logging="BATCH"
if ( round(p_par[4],digit=0) > 5 ) {
 opn$commit_logging="IMMEDIATE"
}
opn$commit_logging=paste("'", opn$commit_logging, "'",sep="")

opn$commit_wait="WAIT"
if ( round(p_par[5],digit=0) > 5 ) {
 opn$commit_wait="NOWAIT"
}
opn$commit_wait=paste("'", opn$commit_wait, "'",sep="")

opn$log_buffer=paste(round(p_par[6],digit=0),"m",sep="")
opn$log_checkpoint_timeout=round(p_par[7],digit=0)
opn$db_writer_processes=round(p_par[8],digit=0)
opn$undo_retention=round(p_par[9],digit=0)
opn$transactions_per_rollback_segment=round(p_par[10],digit=0)
opn$disk_asynch_io="true"
if ( round(p_par[11],digit=0) > 5 ) {
 opn$disk_asynch_io="false"
} 

opn$filesystemio_options="none"
if ( round(p_par[12],digit=0) > 10 && round(p_par[12],digit=0) <= 20 ) {
 opn$filesystemio_options="setall"
}
if ( round(p_par[12],digit=0) > 20 && round(p_par[12],digit=0) <= 30 ) {
 opn$filesystemio_options="directIO"
}
if ( round(p_par[12],digit=0) > 30 ) {
 opn$filesystemio_options="asynch"
}

opn$db_block_checking="OFF"
if ( round(p_par[13],digit=0) > 10 && round(p_par[13],digit=0) <= 20 ) {
 opn$db_block_checking="LOW"
}
if ( round(p_par[13],digit=0) > 20 && round(p_par[13],digit=0) <= 30 ) {
 opn$db_block_checking="MEDIUM"
}
if ( round(p_par[13],digit=0) > 30 ) {
 opn$db_block_checking="FULL"
}

opn$db_block_checksum="OFF"
if ( round(p_par[14],digit=0) > 10 && round(p_par[14],digit=0) <= 20 ) {
 opn$db_block_checksum="TYPICAL"
}
if ( round(p_par[14],digit=0) > 20 ) {
 opn$db_block_checksum="FULL"
}

v_vector=paste(round(p_par[1],digit=0),round(p_par[2],digit=0),round(p_par[3],digit=0),round(p_par[4],digit=0),round(p_par[5],digit=0),round(p_par[6],digit=0),round(p_par[7],digit=0),round(p_par[8],digit=0),round(p_par[9],digit=0),round(p_par[10],digit=0),round(p_par[11],digit=0),round(p_par[12],digit=0),round(p_par[13],digit=0),round(p_par[14],digit=0),sep=";")
cat( paste(v_module," try to evaluate vector: ", v_vector,sep="") , file=v_logfile, sep="n", append=T)

rc=make_additional_rgroups(opn)
if ( rc!=0 ) {
 cat( paste(v_module,"make_additional_rgroups failed",sep="") , file=v_logfile, sep="n", append=T)
 return (0)
}

v_rc=0
rc=set_db_parameter("log_archive_max_processes", opn$log_archive_max_processes)
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("commit_logging", opn$commit_logging )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("commit_wait", opn$commit_wait )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("log_buffer", opn$log_buffer )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("log_checkpoint_timeout", opn$log_checkpoint_timeout )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("db_writer_processes", opn$db_writer_processes )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("undo_retention", opn$undo_retention )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("transactions_per_rollback_segment", opn$transactions_per_rollback_segment )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("disk_asynch_io", opn$disk_asynch_io )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("filesystemio_options", opn$filesystemio_options )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("db_block_checking", opn$db_block_checking )
if ( rc != 0 ) {  v_rc=1 }
rc=set_db_parameter("db_block_checksum", opn$db_block_checksum )
if ( rc != 0 ) {  v_rc=1 }

if ( rc!=0 ) {
 cat( paste(v_module," can not startup db with that vector of settings",sep="") , file=v_logfile, sep="n", append=T)
 rc=stop_db("immediate")
 rc=create_spfile()
 rc=start_db("")
 rc=remove_additional_rgroups(opn)
 return (0)
}

rc=stop_db("immediate")
rc=start_db("")
if ( rc!=0 ) {
 cat( paste(v_module," can not startup db with that vector of settings",sep="") , file=v_logfile, sep="n", append=T)
 rc=stop_db("abort")
 rc=create_spfile()
 rc=start_db("")
 rc=remove_additional_rgroups(opn)
 return (0)
}

rc=run_test()
v_metric=getmetric()

rc=stop_db("immediate")
rc=create_spfile()
rc=start_db("")
rc=remove_additional_rgroups(opn)

cat( paste("result: ",v_metric," ",v_vector,sep="") , file=v_logfile, sep="n", append=T)
return (v_metric)
}

рддреНрдпреЛред рд╕рдмреИ рдХрд╛рдо: рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдп рдорд╛ рдкреНрд░рджрд░реНрд╢рдиред

ga-subroutine рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднреЗрдХреНрдЯрд░рд╣рд░реВ, рд╡рд╛, рдЕрдЭ рд╕рд╣реА рд░реВрдкрдорд╛, рдХреНрд░реЛрдореЛрдЬреЛрдорд╣рд░реВред
рдЬрд╕рдорд╛, рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛ рдЬреАрдирдХреЛ рд╕рд╛рде рдХреНрд░реЛрдореЛрдЬреЛрдорд╣рд░реВрдХреЛ рдЪрдпрди рд╣реЛ рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдареВрд▓реЛ рдорд╛рдирд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫред

рдпреЛ, рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рдПрди-рдЖрдпрд╛рдореА рдЦреЛрдЬ рд╕реНрдерд╛рдирдорд╛ рднреЗрдХреНрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреНрд░реЛрдореЛрдЬреЛрдорд╣рд░реВрдХреЛ рдЗрд╖реНрдЯрддрдо рд╕реЗрдЯ рдЦреЛрдЬреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛред

рдзреЗрд░реИ рд╕реНрдкрд╖реНрдЯ, рд╡рд┐рд╕реНрддреГрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг, рдЖрд░-рдХреЛрдб рдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реБ рд╕рдВрдЧ, рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХрд╛рдоред

рдо рдЫреБрдЯреНрдЯреИ рджреБрдИ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдмрд┐рдиреНрджреБрд╣рд░реВ рдиреЛрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рд╕рдорд╛рд░реЛрд╣рдмрд╛рдЯ рд╕рд╣рд╛рдпрдХ рдХрд▓рд╣рд░реВ evaluate, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рд╕реНрдЯрдк-рд╕реНрдЯрд╛рд░реНрдЯ, subd рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдХреЛ рдорд╛рди рд╕реЗрдЯ рдЧрд░реНрджреИ, рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫ cran-r рдХрд╛рд░реНрдпрд╣рд░реВ system2

рдЬрд╕рдХреЛ рдорджреНрджрддрд▓реЗ: рдХреЗрд╣рд┐ bash рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛ рдЖрджреЗрд╢ рднрдирд┐рдиреНрдЫред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

set_db_parameter

set_db_parameter=function(p1, p2) {
v_module="set_db_parameter"
v_cmd="/home/oracle/testingredotrac╨╡/set_db_parameter.sh"
v_args=paste(p1," ",p2,sep="")

x=system2(v_cmd, args=v_args, stdout=T, stderr=T, wait=T)
if ( length(attributes(x)) > 0 ) {
 cat(paste(v_module," failed with: ",attributes(x)$status," ",v_cmd," ",v_args,sep=""), file=v_logfile, sep="n", append=T)
 return (attributes(x)$status)
}
else {
 cat(paste(v_module," ok: ",v_cmd," ",v_args,sep=""), file=v_logfile, sep="n", append=T)
 return (0)
}
}

рджреЛрд╕реНрд░реЛ рдмрд┐рдиреНрджреБ рд░реЗрдЦрд╛ рд╣реЛ, evaluate рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдЯреНрд░рд┐рдХ рдорд╛рди рд░ рд▓рдЧ рдлрд╛рдЗрд▓рдорд╛ рдпрд╕рдХреЛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЯреНрдпреБрдирд┐рдЩ рднреЗрдХреНрдЯрд░ рдмрдЪрдд рдЧрд░реЗрд░:

cat( paste("result: ",v_metric," ",v_vector,sep="") , file=v_logfile, sep="n", append=T)

рдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ, рдХрд┐рдирднрдиреЗ рдпрд╕ рдбреЗрдЯрд╛ рдПрд░реЗрдмрд╛рдЯ, рдЯреНрдпреБрдирд┐рдЩ рднреЗрдХреНрдЯрд░рдХреЛ рдХреБрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдореЗрдЯреНрд░рд┐рдХ рдорд╛рдирдорд╛ рдмрдвреА рд╡рд╛ рдХрдо рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдердк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдореНрднрд╡ рд╣реБрдиреЗрдЫред

рддреНрдпреЛ рд╣реЛ: рд╡рд┐рд╢реЗрд╖рддрд╛-importamce рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рд╕рдореНрднрд╡ рд╣реБрдиреЗрдЫред

рддреНрдпрд╕реЛрднрдП рдХреЗ рд╣реБрди рд╕рдХреНрдЫ?

рдЧреНрд░рд╛рдл рдлрд╛рд░рдордорд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЖрд░реЛрд╣реА рдореЗрдЯреНрд░рд┐рдХ рдХреНрд░рдордорд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЕрд░реНрдбрд░ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдЪрд┐рддреНрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ:

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ

рдореЗрдЯреНрд░рд┐рдХрдХреЛ рдЪрд░рдо рдорд╛рдирд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреЗрд╣реА рдбреЗрдЯрд╛:
рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ
рдпрд╣рд╛рдБ, рдирддрд┐рдЬрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдирд╕рдЯрдорд╛, рдо рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрдиреЗрдЫреБ: рдЯреНрдпреБрдирд┐рдЩ рднреЗрдХреНрдЯрд░рдХреЛ рдорд╛рдирд╣рд░реВ рдлрд┐рдЯрдиреЗрд╕ рдкреНрд░рдХрд╛рд░реНрдп рдХреЛрдбрдХреЛ рд╕рд░реНрддрдорд╛ рджрд┐рдЗрдПрдХреЛ рдЫ, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛рдирд╣рд░реВрдХреЛ рдкрд░рд┐рдорд┐рддрд┐/ рджрд╛рдпрд░рд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕реВрдЪреАрдХреЛ рд╕рд░реНрддрдорд╛ рд╣реЛрдЗрди, рдЬреБрди рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдорд╛рдерд┐рдХреЛ рдкрд╛рдардорд╛ред

рд░рд╛рдореНрд░реЛред рдпреЛ рдзреЗрд░реИ рд╣реЛ рд╡рд╛ рдереЛрд░реИ, ~8 рд╣рдЬрд╛рд░ tps: рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╢реНрдиред
рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдХрд╛рд░реНрдпрдХреЛ рдврд╛рдБрдЪрд╛ рднрд┐рддреНрд░, рдпреЛ рдЖрдВрдХрдбрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрди, рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреЗ рдЧрддрд┐рд╢реАрд▓рддрд╛ рд╣реЛ, рдпреЛ рдореВрд▓реНрдп рдХрд╕рд░реА рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫред

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

рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдард╛рдЙрдБ рдпрд╣реА рд╣реЛ attribute-importance рдХреБрди рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (рд░рд╛рдореНрд░реЛ рд░реВрдкрдорд╛, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЯреНрдпреБрдирд┐рдЩ рднреЗрдХреНрдЯрд░рдХрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ) рд░ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдореЗрдЯреНрд░рд┐рдХ рдорд╛рдирд▓рд╛рдИ рдХрддрд┐ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдЫрдиреН рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред
рд░ рдпрд╕ рдЬрд╛рдирдХрд╛рд░реАрдмрд╛рдЯ: рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдмрд╛рдЯ рдХреБрди рдХрд╛рд░рдХрд╣рд░реВ рдкреНрд░рднрд╛рд╡рд┐рдд рднрдПрдХрд╛ рдерд┐рдП рднрдиреЗрд░ рдмреБрдЭреНрдиреБрд╣реЛрд╕реНред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН attribute-importance рд╡рд┐рднрд┐рдиреНрди рддрд░рд┐рдХрд╛рдорд╛ рд╕рдореНрднрд╡ рдЫред

рдпреА рдЙрджреНрджреЗрд╢реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдорд▓рд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдордирдкрд░реНрдЫ randomForest рдПрдЙрдЯреИ рдирд╛рдордХреЛ R рдкреНрдпрд╛рдХреЗрдЬ (рдХрд╛рдЧрдЬрд╛рдд)
randomForest, рдореИрд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдЙрд╕рдХреЛ рдХрд╛рдо рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рдорд╣рддреНрддреНрд╡ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрд╕рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмреБрдЭреЗрдХреЛ рд░реВрдкрдорд╛, рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд░рдХреЛ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореЛрдбреЗрд▓ рдмрдирд╛рдЙрдБрдЫред

рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд░ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдореЗрдЯреНрд░рд┐рдХ рд╣реЛ: tps;
рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдЯреНрдпреБрдирд┐рдЩ рднреЗрдХреНрдЯрд░рдХрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╣реБрдиреНред

рддреНрдпрд╕реИрд▓реЗ рдпрд╣рд╛рдБ randomForest рдкреНрд░рддреНрдпреЗрдХ рдореЛрдбреЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рдорд╣рддреНрддреНрд╡рд▓рд╛рдИ рджреБрдИ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕рд╛рде рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрджрдЫ: %IncMSE тАФ рдХрд╕рд░реА рдореЛрдбреЗрд▓рдорд╛ рдпрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐/рдЕрднрд╛рд╡рд▓реЗ рдпрд╕ рдореЛрдбреЗрд▓рдХреЛ MSE рдЧреБрдгрд╕реНрддрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫ (рдореАрди рд╕реНрдХреНрд╡рд╛рдпрд░ рддреНрд░реБрдЯрд┐);

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

рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгрдХреЛ рдирддрд┐рдЬрд╛рдХреЛ рд╕рд╛рде рдбрд╛рдЯрд╛рд╕реЗрдЯ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╢реНрд░рдорд┐рдХ-рдХрд┐рд╕рд╛рди рдЖрд░-рдХреЛрдб:

x=NULL
v_data_file=paste('/tmp/data1.dat',sep="")
x=read.table(v_data_file, header = TRUE, sep = ";", dec=",", quote = ""'", stringsAsFactors=FALSE)
colnames(x)=c('metric','rgsize','rgcount','lamp','cmtl','cmtw','lgbffr','lct','dbwrp','undo_retention','tprs','disk_async_io','filesystemio_options','db_block_checking','db_block_checksum')

idxTrain=sample(nrow(x),as.integer(nrow(x)*0.7))
idxNotTrain=which(! 1:nrow(x) %in% idxTrain )
TrainDS=x[idxTrain,]
ValidateDS=x[idxNotTrain,]

library(randomForest)
#mtry=as.integer( sqrt(dim(x)[2]-1) )
rf=randomForest(metric ~ ., data=TrainDS, ntree=40, mtry=3, replace=T, nodesize=2, importance=T, do.trace=10, localImp=F)
ValidateDS$predicted=predict(rf, newdata=ValidateDS[,colnames(ValidateDS)!="metric"], type="response")
sum((ValidateDS$metric-ValidateDS$predicted)^2)
rf$importance

рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рд╣рд╛рддрд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдордХреЛ рд╣рд╛рдЗрдкрд░рдкреЗрд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реАрдзреИ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдореЛрдбреЗрд▓рдХреЛ рдЧреБрдгрд╕реНрддрд░рдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрджреИ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдбреЗрдЯрд╛рд╕реЗрдЯрдорд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрд╣рд░реВ рдЕрдЭ рд╕рд╣реА рд░реВрдкрдорд╛ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдореЛрдбреЗрд▓ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рддрдкрд╛рдИрд▓реЗ рдпрд╕ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдХреЗрд╣рд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рдкреНрд░рдХрд╛рд░реНрдп рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рдпрд╕реИрд▓реЗ, рдлреЗрд░рд┐, рдХреЗрд╣рд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░)ред

рддрдкрд╛рдИрдВ рдЖрд░ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ caret, рдмрд┐рдиреНрджреБ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫреИрдиред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдирд┐рдореНрди рдирддрд┐рдЬрд╛рд╣рд░реВ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рдорд╣рддреНрддреНрд╡рдХреЛ рдбрд┐рдЧреНрд░реА рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рдкреНрд░рд╛рдкреНрдд рдЧрд░рд┐рдиреНрдЫ:

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рд╡рд┐рдзрд┐, рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд░ рдПрдХ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╕рд░реА рдЪрдпрди рдЧрд░реНрдиреЗ

рд░рд╛рдореНрд░реЛред рдпрд╕рд░реА, рд╣рд╛рдореА рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдкреНрд░рддрд┐рдмрд┐рдореНрдм рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

  1. рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг, рдпреА рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрддрд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдерд┐рдпреЛ commit_wait
    рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░реВрдкрдорд╛, рдпрд╕рд▓реЗ subdb рд▓рдЧ рдмрдлрд░рдмрд╛рдЯ рд╣рд╛рд▓рдХреЛ рд▓рдЧ рд╕рдореВрд╣рдорд╛ рд░рд┐рдбреВ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрдиреЗ io рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫ: рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ред
    рдореВрд▓реНрдп nowait рдЬрд╕рдХреЛ рдкрд░рд┐рдгрд╛рдо рд▓рдЧрднрдЧ рдард╛рдбреЛ рд╣реБрдиреНрдЫ, tps рдореЗрдЯреНрд░рд┐рдХрдХреЛ рдорд╛рдирдорд╛ рдзреЗрд░реИ рд╡реГрджреНрдзрд┐ рд╣реБрдиреНрдЫ: рдпреЛ рд░рд┐рдбреЛ рд╕рдореВрд╣рд╣рд░реВрдорд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ io рдореЛрдбрдХреЛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛред
    рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рдкреНрд░рд╢реНрди рд╣реЛ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЦрд╛рдирд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдпреЛ рдЧрд░реНрдиреБ рдкрд░реНрдЫ рд╡рд╛ рдЫреИрдиред рдпрд╣рд╛рдБ рдо рдЖрдлреВрд▓рд╛рдИ рдХреЗрд╡рд▓ рдмрддрд╛рдЙрди рд╕реАрдорд┐рдд рдЧрд░реНрдЫреБ: рдпреЛ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдХ рд╣реЛред
  2. рдпреЛ рддрд╛рд░реНрдХрд┐рдХ рдЫ рдХрд┐ subd рдХреЛ рд▓рдЧ рдмрдлрд░ рдХреЛ рдЖрдХрд╛рд░: рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдХ рд╣реБрди рдЬрд╛рдиреНрдЫред
    рд▓рдЧ рдмрдлрд░рдХреЛ рд╕рд╛рдЗрдЬ рдЬрддрд┐ рд╕рд╛рдиреЛ рд╣реБрдиреНрдЫ, рдпрд╕рдХреЛ рдмрдлрд░рд┐рдЩ рдХреНрд╖рдорддрд╛ рдЬрддрд┐ рдХрдо рд╣реБрдиреНрдЫ, рддреНрдпрддрд┐ рдиреИ рдпреЛ рдУрднрд░рдлреНрд▓реЛ рд╣реБрдиреНрдЫ рд░/рд╡рд╛ рдирдпрд╛рдБ рд░реЗрдбрдХреНрд╕ рдбреЗрдЯрд╛рдХреЛ рдПрдХ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдорд╛ рдЦрд╛рд▓реА рдХреНрд╖реЗрддреНрд░ рдЫреБрдЯреНрдпрд╛рдЙрди рдЕрд╕рдорд░реНрде рд╣реБрдиреНрдЫред
    рдпрд╕рдХреЛ рдЕрд░реНрде рд╣реЛ: рд▓рдЧ рдмрдлрд░рдорд╛ рд╕реНрдкреЗрд╕ рдЖрд╡рдВрдЯрди рдЧрд░реНрди рд░/рд╡рд╛ рддреНрдпрд╕рдмрд╛рдЯ рд░рд┐рдбреВ рд╕рдореВрд╣рд╣рд░реВрдорд╛ рд░рд┐рдбреВ рдбреЗрдЯрд╛ рдбрдореНрдкрд┐рдЩрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдврд┐рд▓рд╛рдЗред
    рдпреА рдврд┐рд▓рд╛рдЗрд╣рд░реВ, рдЕрд╡рд╢реНрдп рдкрдирд┐, рд▓реЗрдирджреЗрдирдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдереНрд░реБрдкреБрдЯрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреБрдкрд░реНрджрдЫред
  3. рдкрд░рд┐рдорд┐рддрд┐ db_block_checksum: рдареАрдХ рдЫ, рд╕рд╛рдереИ, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ - рд▓реЗрдирджреЗрди рдкреНрд░рд╢реЛрдзрдирд▓реЗ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдХреЛ рдмрдлрд░ рдХреНрдпрд╛рд╕рдорд╛ рдбрд╛рд░реНрдЯреА рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдЧрдарди рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред
    рдХреБрди, рдЬрдм рдбрд╛рдЯрд╛рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдЪреЗрдХрд╕рдорд╣рд░реВ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдЫ, рдбрд╛рдЯрд╛рдмреЗрд╕рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ - рдбрд╛рдЯрд╛рдмреНрд▓рдХрдХреЛ рдореБрдЦреНрдп рднрд╛рдЧрдмрд╛рдЯ рдпреА рдЪреЗрдХрд╕рдорд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдбрд╛рдЯрд╛рдмреНрд▓рдХ рд╣реЗрдбрд░рдорд╛ рдХреЗ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдореЗрд▓ рдЦрд╛рдиреНрдЫ/рдорд┐рд▓реНрджреИрдиред
    рдпрд╕реНрддреЛ рдХрд╛рдо, рдлреЗрд░рд┐, рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рдврд┐рд▓рд╛рдЗ рдЧрд░реНрди рд╕рдХреНрджреИрди, рд░ рддрджрдиреБрд╕рд╛рд░, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд░ рдпреЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рд╕рдВрдпрдиреНрддреНрд░ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╣реБрди рдЬрд╛рдиреНрдЫред
    рдпрд╕реИрд▓реЗ рд╡рд┐рдХреНрд░реЗрддрд╛рд▓реЗ рдпрд╕ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдЧрдЬрд╛рддрдорд╛, рдлрд░рдХ рдорд╛рдирд╣рд░реВ рд░ рдиреЛрдЯрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫ рдХрд┐ рд╣реЛ, рддреНрдпрд╣рд╛рдБ рдкреНрд░рднрд╛рд╡ рд╣реБрдиреЗрдЫ, рддрд░ рддрдкрд╛рдЗрдБ рдлрд░рдХ рдорд╛рдирд╣рд░реВ, "рдмрдиреНрдж" рд░ рдлрд░рдХ рдкреНрд░рднрд╛рд╡рд╣рд░реВ рдкрдирд┐ рдЫрдиреМрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЦреИрд░, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ред

рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдзреЗрд░реИ рдХрд╛рдо рдЧрд░реНрди рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫред

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

рддрд░ рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрджреИрди - рдХрдореНрддрд┐рдорд╛ рдмреБрдЭрд╛рдЗрдХреЛ рд╕реНрддрд░рдорд╛: рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ "рд╕рдорд╛рдпреЛрдЬрди рдирдмрд╣рд░реВ" рд░ рдпреА рдирдмрд╣рд░реВрдХреЛ рд░реЛрдЯреЗрд╢рдирдХреЛ рдЕрдиреБрдорддрд┐рдпреЛрдЧреНрдп рджрд╛рдпрд░рд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрджрдЫред

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

рдЬреБрди, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдпреЛ рдзреЗрд░реИ рдЧрд╣рд┐рд░реЛ рд╕рдордЭ рдХреЛ рдЙрджреНрднрд╡ рдорд╛ рдпреЛрдЧрджрд╛рди рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдпрд╕рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди, рдХрдореНрддрд┐рдорд╛ рджрд┐рдЗрдПрдХреЛ рд▓реЛрдб рдЕрдиреНрддрд░реНрдЧрддред

рдЕрднреНрдпрд╛рд╕рдорд╛, рдпреЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдпрд╕реНрддреЛ рдкрд░реАрдХреНрд╖рдг рддрдпрд╛рд░реАрдХреЛ рд▓рд╛рдЧрддрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрддрдХреЛ рд╡рд┐рдирд┐рдордп рд╣реЛред

рдо рдЫреБрдЯреНрдЯреИ рдиреЛрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ: рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдорд╛, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рд╣реБрдиреЗ рд╕рдЮреНрдЪрд╛рд▓рди рд╕рд░реНрддрд╣рд░реВрдорд╛ рдкреНрд░рдгрд╛рд▓реА рдкрд░реАрдХреНрд╖рдгрдХреЛ рдкрд░реНрдпрд╛рдкреНрддрддрд╛рдХреЛ рдбрд┐рдЧреНрд░реА рдЧрдореНрднреАрд░ рд░реВрдкрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред

рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рди рд░ рд╕рдордп рдХреЛ рд▓рд╛рдЧреА рдзрдиреНрдпрд╡рд╛рджред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди