рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рдкрджреНрдзрдд, рдХрд┐рдВрд╡рд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╕реЗ рдирд┐рд╡рдбрд╛рдпрдЪреЗ

╨Ч╨┤╤А╨░╨▓╤Б╤В╨▓╤Г╨╣╤В╨╡.

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

рддрд░, рдмрд┐рдВрджреВрдкрд░реНрдпрдВрдд.

рдЪрд▓рд╛ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдХрд╛рд░реНрдп рдЖрд╣реЗ: рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реА рд╕реЗрдЯ рдХрд░рдгреЗ.

рдпрд╛ рдХрд╛рдорд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ: рддреЗ рдХрд╛рдп рдЖрд╣реЗ, рдпрд╛ рдХрд╛рдорд╛рдЪреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╢реА рдореЛрдЬрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рд╣реА рдЧреБрдгрд╡рддреНрддрд╛ рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдХрд╖ рдХрд╛рдп рдЖрд╣реЗрдд.

рдЪрд▓рд╛ рд╣реЗ рджреЗрдЦреАрд▓ рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рддреЗ рдХрдореА-рдЕрдзрд┐рдХ рдкреНрд░рдорд╛рдгрд╛рдд рдЬреНрдЮрд╛рдд рдЖрдгрд┐ рд╕рдордЬрд▓реЗ рдЖрд╣реЗ: рдпрд╛ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ (рдХрд┐рдВрд╡рд╛ рд╕рд╣) рдХрд╛рд░реНрдп рдХрд╕реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

"рдЕрдзрд┐рдХ рдХрд┐рдВрд╡рд╛ рдХрдореА" - рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдзрди, рдЙрдкрдпреБрдХреНрддрддрд╛, рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рдХрд┐рдВрд╡рд╛ рддреЗ рдХреЛрдареВрди рддрд░реА рдорд┐рд│реВ рд╢рдХрддреЗ) рдЬреНрдпрд╛рдЪреЗ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рд▓реЛрдбрд╕рд╣ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЬреЗ рдЙрддреНрдкрд╛рджрдирд╛рдд рдХрд╛рдп рдЕрд╕реЗрд▓ рддреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ, рдЙрддреНрдкрд╛рджрдирд╛рдд рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд.

рдмрд░рдВ, рдпрд╛ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рд╕рдорд╛рдпреЛрдЬрди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪрд╛ рд╕рдВрдЪ рдЬреНрдЮрд╛рдд рдЖрд╣реЗ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рдпрд╛, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрдХрддреЗрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

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

рд╡рд┐рд╣реАрд░. рд╣реЗ рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ рдЕрд╕рддреЗ.

рддреБрдореНрд╣реА рдЗрдереЗ рдХрд╛рдп рдХрд░реВ рд╢рдХрддрд╛?

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

рддреНрдпрд╛. рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рджреНрдпрд╛.

рд╣реЗрдЪ рдЯреВрд▓-рдпреБрдЯрд┐рд▓рд┐рдЯреА, рд▓реЛрдб рдЬрдирд░реЗрдЯрд░ рд╡рд╛рдкрд░реВрди, рддреНрдпрд╛рд╡рд░ рдЪрд╛рдЪрдгреА рд▓реЛрдб рд▓рд╛рдЧреВ рдХрд░рд╛.
рдЖрдгрд┐ рдореВрд▓реНрдп рдкрд╣рд╛ - рдкреНрд░рддрд┐рд╕рд╛рдж, рдХрд┐рдВрд╡рд╛ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдЧреБрдгрд╡рддреНрддреЗрдЪрд╛ рдореЗрдЯреНрд░рд┐рдХ.

рджреБрд╕рд░рд╛ рд╡рд┐рдЪрд╛рд░ рдЕрд╕рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдЕрд╕реВ рд╢рдХрддреЛ рдХреА рд╣рд╛ рдмрд░рд╛рдЪ рдХрд╛рд│ рдЖрд╣реЗ.

рдмрд░рдВ, рддреЗ рдореНрд╣рдгрдЬреЗ: рдЬрд░ рддреЗрдереЗ рдмрд░реЗрдЪ рд╕реЗрдЯрд┐рдВрдЧ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЕрд╕рддреАрд▓, рдЬрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╢реНрд░реЗрдгреА рдореЛрдареНрдпрд╛ рдЕрд╕рддреАрд▓, рдЬрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реИрдпрдХреНрддрд┐рдХ рд▓реЛрдб рдЪрд╛рдЪрдгреА рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рд╕ рдмрд░рд╛рдЪ рд╡реЗрд│ рд▓рд╛рдЧрддреЛ, рддрд░: рд╣реЛрдп, рд╣реЗ рд╕рд░реНрд╡ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдпрдкрдгреЗ рд▓рд╛рдЧреВ рд╢рдХрддреЗ. рдмрд░рд╛рдЪ рд╡реЗрд│

рдмрд░рдВ, рддреБрдореНрд╣реА рдХрд╛рдп рд╕рдордЬреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡реВ рд╢рдХрддрд╛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ.

рдЖрдкрдг рд╣реЗ рд╢реЛрдзреВ рд╢рдХрддрд╛ рдХреА рд╕реЗрд╡рд╛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рдордзреНрдпреЗ рдХрд╛рд╣реА рдореВрд▓реНрдпрд╛рдВрдЪрд╛ рдХреНрд░рдо рдореНрд╣рдгреВрди рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЖрд╣реЗ.

рдЕрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдХреНрдЯрд░, рдЗрддрд░ рдЧреЛрд╖реНрдЯреА рд╕рдорд╛рди рдЕрд╕рддрд╛рдд (рддреНрдпрд╛рд╡рд░ рдпрд╛ рд╡реЗрдХреНрдЯрд░рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдд рдирд╛рд╣реА), рдореЗрдЯреНрд░рд┐рдХрдЪреНрдпрд╛ рдкреВрд░реНрдгрдкрдгреЗ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ - рдЪрд╛рдЪрдгреА рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдЧреБрдгрд╡рддреНрддреЗрдЪреЗ рд╕реВрдЪрдХ.

рдореНрд╣рдгрдЬреЗ

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

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

рдмрд░рдВ, рдордЧ: рдорд╛рдЭреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╕рд░реНрд╡рдХрд╛рд╣реА рд▓рдЧреЗрдЪ рдЦрд╛рд▓реА рдпреЗрддреЗ: рдорд╛рдЭреНрдпрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рджрд┐рд╡рд╕рд╛рдВрдкрд╛рд╕реВрди рдЬрд╡рд│рдЬрд╡рд│ рд╡рд┐рд╕рд░рд▓реЗрд▓реЗ, рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рдЯреЛрдХрд╛рдЪрд╛ рд╢реЛрдз рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо.

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

  1. рдЕрд░реНрдерд╛рдиреЗ - рдЬреЗрдгреЗрдХрд░реВрди рдЖрдкрдг рд╣рд╛рддрд╛рдиреЗ рдХрдореА рдХреЛрдб рдХрд░реВ рд╢рдХрддрд╛.
  2. рдЖрдгрд┐ рддреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореНрд╣рдгрдЬреЗ. extremum (рдПрдЦрд╛рджреЗ рдЕрд╕рд▓реНрдпрд╛рд╕) рдЖрдврд│рд▓реЗ, рддрд╕реЗрдЪ, рд╕рдордиреНрд╡рдп рд╡рдВрд╢рд╛рдкреЗрдХреНрд╖рд╛ рдХрдореАрдд рдХрдореА рд╡реЗрдЧрд╡рд╛рди.

рдкрд╣рд┐рд▓рд╛ рдореБрджреНрджрд╛ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдХреА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрд╢рд╛ рдХрд╛рд╣реА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрд╢рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдзреАрдЪ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЖрдгрд┐ рдХрд╛рд╣реА рд╕реНрд╡рд░реВрдкрд╛рдд, рдХреЛрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗрдд.
рдмрд░рдВ, рдорд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ python ╨╕ cran-r

рджреБрд╕рд▒реНрдпрд╛ рдореБрджреНрджреНрдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реНрд╡рддрдГрдЪ, рддреЗ рдХрд╛рдп рдЖрд╣реЗрдд, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛рдп рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдпрд╛рдмрджреНрджрд▓ рд╡рд╛рдЪрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЖрдгрд┐ рддреЗ рдЬреЗ рджреЗрддрд╛рдд рддреЗ рдЙрдкрдпреБрдХреНрдд рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдЕрд╕реВ рд╢рдХрддрд╛рдд - рдкрд░рд┐рдгрд╛рдо рдХрд┐рдВрд╡рд╛ рдереЗрдЯ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордордзреВрдирдЪ.

рдХрд┐рдВрд╡рд╛ рддреЗ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрдордзреВрди рдорд┐рд│реВ рд╢рдХрддрд╛рдд.

рдЗрдирдкреБрдЯ рдЕрдЯреАрдВрд╡рд░ рдмрд░реЗрдЪ рдХрд╛рд╣реА рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ.

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

рдХрд┐рдВрд╡рд╛, рд╡реЗрд│ рддрд┐рддрдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЕрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рд╛рд░рдЦреНрдпрд╛ рд╕реНрдЯреЛрдХрд╛рд╕реНрдЯрд┐рдХ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рдореА рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреЗ рдХрд╛рд░реНрдп рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрддреЛ, рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдирд┐рд╡рдбрдгреЗ, рдЕрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реБрди, рдкреБрдвреАрд▓, рдореНрд╣рдгрдЬреЗ: рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрдЪреЗ рдХрд╛рд░реНрдп.

рдореВрд│:

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

рд╣реЗ рдЕрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрд╣реЗрдд рдЬреЗ рдХрдореА-рдЕрдзрд┐рдХ рдореЛрдареНрдпрд╛ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдПрдХ рдкрдВрдХреНрддреА рдмрджрд▓рддрд╛рдд, рдпрд╛ рдЯреЗрдмрд▓рд╡рд░ рдХрдореА рд╕рдВрдЦреНрдпреЗрдиреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЕрд╕рддрд╛рдд.

рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд: рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрд╕рд╛рдареА рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рдЙрддреНрдкрд╛рджрдХрддрд╛, рдЖрд░рдХреНрд╖рдгрд╛рд╕рд╣, рд░реЗрдбреЙрдХреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕рджреНрд╡рд╛рд░реЗ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рдЧреБрдгрд╡рддреНрддреЗрджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рдИрд▓.

рдЕрд╕реНрд╡реАрдХрд░рдг - рдЬрд░ рдЖрдореНрд╣реА рд╡рд┐рд╢реЗрд╖рддрдГ рд╕рдмрдбреАрдмреА рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ.

рдХрд╛рд░рдг, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдмрддреАрдд, рдЯреЕрдмреНрдпреБрд▓рд░ рдбреЗрдЯрд╛ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдЯреЕрдмреНрдпреБрд▓рд░ рдореЙрдбреЗрд▓рд╕рд╣ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреНрдпрд╛ рдбрд┐рдЭрд╛рдЗрдирдореБрд│реЗ, SQL рд╕рддреНрд░рд╛рдВрдордзреАрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рд▓реЙрдХ рдЕрд╕реВ рд╢рдХрддрд╛рдд.

рдЬреНрдпрд╛рдЪрд╛, рдЕрд░реНрдерд╛рддрдЪ, TPS рдореЗрдЯреНрд░рд┐рдХрд╡рд░ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдкреНрд░рднрд╛рд╡ рдкрдбреЗрд▓ рдЖрдгрд┐ рд╣рд╛ рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдПрдХ рдмрд╛рд╣реНрдп рдШрдЯрдХ рдЕрд╕реЗрд▓: рдмрд░рдВ, рд╕рд╛рд░рдгреА рдореЙрдбреЗрд▓рдЪреА рд░рдЪрдирд╛ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрдгрд┐ рддреНрдпрд╛рдд рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдбрдерд│реЗ рдпреЗрддрд╛рдд.

рдореНрд╣рдгреВрди, рдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рд╢реБрджреНрдзрддреЗрд╕рд╛рдареА, рдЖрдореНрд╣реА рд╣рд╛ рдШрдЯрдХ рд╡рдЧрд│реВ рдЖрдгрд┐ рдЦрд╛рд▓реА рдореА рддреЗ рдХрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реВ.

  1. рдЖрдкрдг рдирд┐рд╢реНрдЪрд┐рддрддреЗрд╕рд╛рдареА рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕рдмрдорд┐рдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ 100% SQL рдХрдорд╛рдВрдбреНрд╕ DML рдХрдорд╛рдВрдбреНрд╕ рдЖрд╣реЗрдд.
    рд╕рдмрдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рдорд╛рди рдЕрд╕реВ рджреНрдпрд╛.
    рдЙрджрд╛: skl рд╕рддреНрд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛, рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛, skl рд╕рддреНрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╣ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд.
  2. Subd рдордзреНрдпреЗ рдХрд╛рдо рдХрд░рддреЗ FORCE LOGGING, ARCHIVELOG рдореЛрдб рдлреНрд▓реЕрд╢рдмреЕрдХ-рдбреЗрдЯрд╛рдмреЗрд╕ рдореЛрдб рд╕рдмрдбреА рд╕реНрддрд░рд╛рд╡рд░ рдмрдВрдж рдЖрд╣реЗ.
  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 рдХрдбреВрди
рдбреАрдПрдордПрд▓ рдХрдорд╛рдВрдбрдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА рдирд┐рдпрдорди рдХреЗрд▓реА рдЬрд╛рддреЗ, рд╕рдмрдбреАрд╡рд░ рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рдордЬрдХреВрд░ рд╕рдВрджреЗрд╢рд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдордЬрдХреВрд░ рд╕рддреНрд░, рдкреЕрд░рд╛рдореАрдЯрд░ 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"

рддреНрдпрд╛. рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рдордЧрд╛рд░рд╛рд╕рд╛рдареА (рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрдкрдгреЗ: рдбреАрдмреАрдордзреНрдпреЗ рдПрдХ рд╡реЗрдЧрд│реЗ SQL рд╕рддреНрд░) рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рд╕рд╣ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЛ.

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

рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд рд╕рдмрдбреАрдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░рд╛ рд╕реНрдЯреЕрдЯрд╕реНрдкреЕрдХ рдЕрд╣рд╡рд╛рд▓рд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ

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 рдореВрд▓реНрдп рд╢реНрд░реЗрдгреА: [ремреж,резреирежреж] рд╕реЗрдХрдВрдж
  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 рдкрд░рд┐рдорд╛рдг рдЖрд╣реЗрдд - рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдгрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдпреЗ.

рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрд▓рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░реВрди рд╣реА рд╕рдорд╕реНрдпрд╛ рдирдХреНрдХреАрдЪ рдЯрд╛рд│рд▓реА рдЬрд╛рддреЗ.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╢реЗрд╡рдЯреА, рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдпрд╛рд╕рд╛рд░рдЦрд╛ рджрд┐рд╕рддреЛ:

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 рд╕рдмрд░реВрдЯреАрди рд╡рд┐рд╢реЗрд╖рддрд╛ ga рдореВрд▓рдд:, рд╢реЛрдз рдЬрд╛рдЧреЗрдЪреЗ рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрд╢рд╛ рд╡реЗрдХреНрдЯрд░ (рдХрд┐рдВрд╡рд╛ рд╡реЗрдХреНрдЯрд░) рд╕рд╛рдареА рд╢реЛрдз рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓ рдЬреНрдпрд╛рд╕рд╛рдареА рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рдирдЪреЗ рдХрдорд╛рд▓ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.

ga subroutine рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рди рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд╢реЛрдзрддреЗ.

рдмрд░рдВ, рдордЧ, рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рди, рд╕рдмрдбреАрдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рд╡реНрд╣реЕрд▓реНрдпреВрдЬрдЪрд╛ рд╕рдВрдЪ рдореНрд╣рдгреВрди рд╡реЗрдХреНрдЯрд░ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рд╕рдмрдбреАрдХрдбреВрди рдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдореНрд╣рдгрдЬреЗ: рджрд┐рд▓реЗрд▓реНрдпрд╛ subd рд╕реЗрдЯрдЕрдкрд╕рд╣ рдХрд┐рддреА рдЖрдгрд┐ subd рд╡рд░ рджрд┐рд▓реЗрд▓реНрдпрд╛ рд▓реЛрдбрд╕рд╣: subd рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ.

рдореНрд╣рдгрдЬреЗрдЪ, рдЙрд▓рдЧрдбрддрд╛рдирд╛, рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдк рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

  1. рд╕рдВрдЦреНрдпрд╛рдВрдЪреНрдпрд╛ рдЗрдирдкреБрдЯ рд╡реЗрдХреНрдЯрд░рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ - рд╕рдмрдбреЗрдЯрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╛рдареА рдореВрд▓реНрдпрд╛рдВрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ.
  2. рджрд┐рд▓реЗрд▓реНрдпрд╛ рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рд░реАрдбреВ рдЧрдЯрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди. рд╢рд┐рд╡рд╛рдп, рдкреНрд░рдпрддреНрди рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддрд╛рдд.
    рдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рд╢реБрджреНрдзрддреЗрд╕рд╛рдареА subd рдордзреНрдпреЗ рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реЗ рдорд╛рд╕рд┐рдХ рдЧрдЯ, рдХрд╛рд╣реА рдкреНрд░рдорд╛рдгрд╛рдд рдЖрдгрд┐ рдХрд╛рд╣реА рдЖрдХрд╛рд░рд╛рдЪреЗ - 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, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдЯреЙрдк-рд╕реНрдЯрд╛рд░реНрдЯ, рд╕рдмрдбреА рдкреЕрд░рд╛рдореАрдЯрд░рдЪреЗ рдореВрд▓реНрдп рд╕реЗрдЯ рдХрд░рдгреЗ, рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ cran-r рдХрд╛рд░реНрдпреЗ system2

рдЬреНрдпрд╛рдЪреНрдпрд╛ рдорджрддреАрдиреЗ: рдХрд╛рд╣реА рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдВрд╡рд╛ рдХрдорд╛рдВрдб рдХреЙрд▓ рдХреЗрд▓реА рдЬрд╛рддреЗ.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:

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)

рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рдпрд╛ рдбреЗрдЯрд╛ рдЕреЕрд░реЗрдордзреВрди, рдЯреНрдпреВрдирд┐рдВрдЧ рд╡реЗрдХреНрдЯрд░рдЪреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛ рдШрдЯрдХрд╛рдВрдЪрд╛ рдореЗрдЯреНрд░рд┐рдХ рдореВрд▓реНрдпрд╛рд╡рд░ рдЬрд╛рд╕реНрдд рдХрд┐рдВрд╡рд╛ рдХрдореА рдкреНрд░рднрд╛рд╡ рдкрдбрддреЛ рдпрд╛рдмрджреНрджрд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓.

рдореНрд╣рдгрдЬреЗ: рд╡рд┐рд╢реЗрд╖рддрд╛-рдЖрдпрд╛рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓.

рдордЧ рдХрд╛рдп рд╣реЛрдК рд╢рдХрддреЗ?

рдЖрд▓реЗрдЦ рд╕реНрд╡рд░реВрдкрд╛рдд, рддреБрдореНрд╣реА рдЪрдврддреНрдпрд╛ рдореЗрдЯреНрд░рд┐рдХ рдХреНрд░рдорд╛рдиреЗ рдЪрд╛рдЪрдгреНрдпрд╛ рдорд╛рдЧрд╡рд▓реНрдпрд╛рд╕, рдЪрд┐рддреНрд░ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ:

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рдкрджреНрдзрдд, рдХрд┐рдВрд╡рд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╕реЗ рдирд┐рд╡рдбрд╛рдпрдЪреЗ

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

рд╡рд┐рд╣реАрд░. рд╣реЗ рдЦреВрдк рдЖрд╣реЗ рдХреА рдереЛрдбреЗ, ~8 рд╣рдЬрд╛рд░ рдЯреАрдкреАрдПрд╕: рдПрдХ рд╡реЗрдЧрд│рд╛ рдкреНрд░рд╢реНрди.
рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреНрдпрд╛ рдЪреМрдХрдЯреАрдд, рд╣реА рдЖрдХреГрддреА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдирд╛рд╣реА, рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛рдп рдЖрд╣реЗ, рд╣реЗ рдореВрд▓реНрдп рдХрд╕реЗ рдмрджрд▓рддреЗ.

рдпреЗрдереАрд▓ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдЪрд╛рдВрдЧрд▓реА рдЖрд╣реЗ.
рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рдХрдореАрдд рдХрдореА рдПрдХ рдШрдЯрдХ рдореЗрдЯреНрд░рд┐рдХрдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рд╡рд░, ga-рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╡рд░ рд▓рдХреНрд╖рдгреАрдп рдкреНрд░рднрд╛рд╡ рдЯрд╛рдХрддреЛ, рдЧреБрдгрд╕реВрддреНрд░ рд╡реЗрдХреНрдЯрд░рджреНрд╡рд╛рд░реЗ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рддреЛ: рдЭрд╛рдХрд▓реЗрд▓реЗ.
рд╡рдХреНрд░ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рдмрд░реНтАНрдпрд╛рдкреИрдХреА рдЬреЛрдорджрд╛рд░ рдЧрддрд┐рд╢реАрд▓рддреЗрдЪрд╛ рдЖрдзрд╛рд░ рдШреЗрдд, рдЖрдгрдЦреА рдПрдХ рдШрдЯрдХ рдЖрд╣реЗ рдЬреЛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд▓рд╣рд╛рди рдЕрд╕рд▓рд╛ рддрд░реА рддреНрдпрд╛рдЪрд╛ рдкреНрд░рднрд╛рд╡ рдЖрд╣реЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ attribute-importance рдХреЛрдгрддреЗ рдЧреБрдгрдзрд░реНрдо (рдЪрд╛рдВрдЧрд▓реЗ, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЯреНрдпреВрдирд┐рдВрдЧ рд╡реЗрдХреНрдЯрд░рдЪреЗ рдШрдЯрдХ) рдЖрдгрд┐ рддреЗ рдореЗрдЯреНрд░рд┐рдХ рдореВрд▓реНрдпрд╛рд╡рд░ рдХрд┐рддреА рдкреНрд░рднрд╛рд╡ рдкрд╛рдбрддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢реНрд▓реЗрд╖рдг.
рдЖрдгрд┐ рдпрд╛ рдорд╛рд╣рд┐рддреАрд╡рд░реВрди: рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЧреБрдгрдзрд░реНрдорд╛рдВрдордзреАрд▓ рдмрджрд▓рд╛рдВрдореБрд│реЗ рдХреЛрдгрддреЗ рдШрдЯрдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдЭрд╛рд▓реЗ рддреЗ рд╕рдордЬреВрди рдШреНрдпрд╛.

рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ attribute-importance рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╢рдХреНрдп.

рдпрд╛ рд╣реЗрддреВрдВрд╕рд╛рдареА, рдорд▓рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрд╡рдбрддреЛ randomForest рддреНрдпрд╛рдЪ рдирд╛рд╡рд╛рдЪреЗ рдЖрд░ рдкреЕрдХреЗрдЬ (рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг)
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

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

рддреБрдореНрд╣реА R рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ caret, рдореБрджреНрджрд╛ рдорд╣рддреНрд╡рд╛рдЪрд╛ рдирд╛рд╣реА.

рдкрд░рд┐рдгрд╛рдореА, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреНрдпрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рдбрд┐рдЧреНрд░реАрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд:

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреЛрдХ рдкрджреНрдзрдд, рдХрд┐рдВрд╡рд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╕реЗ рдирд┐рд╡рдбрд╛рдпрдЪреЗ

рд╡рд┐рд╣реАрд░. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рдЬрд╛рдЧрддрд┐рдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддреЛ:

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

рдмрд░рдВ, рдЬрд╛рдЧрддрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖.

рджреГрд╖реНрдЯреАрдХреЛрди, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдмрд░реНтАНрдпрд╛рдкреИрдХреА рдХрд╛рд░реНрдпрд░рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдпреЗрддреЗ.

рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд▓реЛрдб рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдд, рд▓реЛрдбрд╕рд╛рдареА рддреНрдпрд╛рдЪреЗ (рд╕рд┐рд╕реНрдЯрдо) рдЗрд╖реНрдЯрддрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА, рд▓реЛрдбрд╕рд╛рдареА рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдордзреНрдпреЗ рдЬрд╛рд╕реНрдд рд╢реЛрдз рди рдШреЗрдгреНрдпрд╛рдХрд░рд┐рддрд╛ рддреЛ рд╕реНрд╡рдд: рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

рдкрд░рдВрддреБ рддреЗ рдкреВрд░реНрдгрдкрдгреЗ рд╡рдЧрд│рдд рдирд╛рд╣реА - рдХрд┐рдорд╛рди рд╕рдордЬрдгреНрдпрд╛рдЪреНрдпрд╛ рдкрд╛рддрд│реАрд╡рд░: рд╕рд┐рд╕реНрдЯрдорд▓рд╛ "рдЕтАНреЕрдбрдЬрд╕реНрдЯрдореЗрдВрдЯ рдиреЙрдмреНрд╕" рдЖрдгрд┐ рдпрд╛ рдиреЙрдмреНрд╕рдЪреНрдпрд╛ рд░реЛрдЯреЗрд╢рдирдЪреНрдпрд╛ рдЕрдиреБрдЬреНрдЮреЗрдп рд╢реНрд░реЗрдгреАрдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

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

рдЬреЗ, рдЕрд░реНрдерд╛рддрдЪ, рдХрд┐рдорд╛рди рджрд┐рд▓реЗрд▓реНрдпрд╛ рд▓реЛрдб рдЕрдВрддрд░реНрдЧрдд, рдкреНрд░рдгрд╛рд▓реА, рддреНрдпрд╛рдЪреЗ рдСрдкрд░реЗрд╢рди рдпрд╛ рдЕрддрд┐рд╢рдп рдЦреЛрд▓ рд╕рдордЬреВрди рдЙрджрдп рдпреЛрдЧрджрд╛рди рдкрд╛рд╣рд┐рдЬреЗ.

рд╕рд░рд╛рд╡ рдордзреНрдпреЗ, рд╣реА рдкреНрд░рдгрд╛рд▓реАрдЪреА рдЪрд╛рдЪрдгреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЦрд░реНрдЪрд╛рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪреНрдпрд╛ рдЦрд░реНрдЪрд╛рдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдЖрд╣реЗ.

рдореА рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ: рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдордзреНрдпреЗ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрд╕рд╛рдареА рд╕рд┐рд╕реНрдЯрдо рдЪрд╛рдЪрдгреАрдЪреА рдкрд░реНрдпрд╛рдкреНрддрддрд╛ рдЧрдВрднреАрд░рдкрдгреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЖрд╣реЗ.

рддреБрдордЪреЗ рд▓рдХреНрд╖ рдЖрдгрд┐ рд╡реЗрд│ рджрд┐рд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛