ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”

ืฉืœื•ื

ื”ื—ืœื˜ืชื™ ืœืฉืชืฃ ื‘ืžืžืฆื ืฉืœื™ - ืคืจื™ ืžื—ืฉื‘ื”, ื ื™ืกื•ื™ ื•ื˜ืขื™ื™ื”.
ื‘ื’ื“ื•ืœ: ื–ื” ืœื ืžืžืฆื ื›ืžื•ื‘ืŸ - ื›ืœ ื–ื” ื”ื™ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื™ื“ื•ืข ืžื–ืžืŸ, ืœืžื™ ืฉืขื•ืกืง ื‘ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ื™ื™ืฉื•ืžื™ ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžืขืจื›ื•ืช ื›ืœืฉื”ืŸ, ืœืื• ื“ื•ื•ืงื ื”-DBMS.
ื•ื›ืŸ: ื›ืŸ, ื”ื ื™ื•ื“ืขื™ื, ื”ื ื›ื•ืชื‘ื™ื ืžืืžืจื™ื ืžืขื ื™ื™ื ื™ื ืขืœ ื”ืžื—ืงืจ ืฉืœื”ื, ื“ื•ื’ืžื” (UPD.: ื‘ื”ืขืจื•ืช ื”ื ื”ืฆื‘ื™ืขื• ืขืœ ืคืจื•ื™ืงื˜ ืžืื•ื“ ืžืขื ื™ื™ืŸ: ottertune )
ืžืฆื“ ืฉื ื™: ื™ืฉืจ ืื ื™ ืœื ืจื•ืื” ืื™ื–ื›ื•ืจ ืื• ื”ืคืฆื” ื ืจื—ื‘ืช ืฉืœ ื’ื™ืฉื” ื–ื• ื‘ืื™ื ื˜ืจื ื˜ ื‘ืงืจื‘ ืžื•ืžื—ื™ IT, DBA.

ืื–, ืœืขื ื™ื™ืŸ.

ื‘ื•ื ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืžืฉื™ืžื”: ืœื”ืงื™ื ืžืขืจื›ืช ืฉื™ืจื•ืช ืžืกื•ื™ืžืช ืฉืชืฉืจืช ืกื•ื’ ืฉืœ ืขื‘ื•ื“ื”.

ื™ื“ื•ืข ืขืœ ืขื‘ื•ื“ื” ื–ื•: ืžื”ื™, ืื™ืš ื ืžื“ื“ืช ืื™ื›ื•ืช ื”ืขื‘ื•ื“ื” ื”ื–ื• ื•ืžื”ื• ื”ืงืจื™ื˜ืจื™ื•ืŸ ืœืžื“ื™ื“ืช ืื™ื›ื•ืช ื–ื•.

ื‘ื•ืื• ื’ื ื ื ื™ื— ืฉื–ื” ืคื—ื•ืช ืื• ื™ื•ืชืจ ื™ื“ื•ืข ื•ืžื•ื‘ืŸ: ืื™ืš ื‘ื“ื™ื•ืง ืžืชื‘ืฆืขืช ื”ืขื‘ื•ื“ื” ื‘ืžืขืจื›ืช ื”ืฉื™ืจื•ืช ื”ื–ื• (ืื• ืขื).

"ืคื—ื•ืช ืื• ื™ื•ืชืจ" - ื–ื” ืื•ืžืจ ืฉืืคืฉืจ ืœื”ื›ื™ืŸ (ืื• ืœื”ืฉื™ื’ ืื•ืชื• ืžืื™ืคืฉื”ื•) ื›ืœื™ ืžืกื•ื™ื, ืฉื™ืจื•ืช, ืฉื™ืจื•ืช ืฉื ื™ืชืŸ ืœืกื ืชื– ื•ืœื”ื—ื™ืœ ืขืœ ื”ืžืขืจื›ืช ืขื ืขื•ืžืก ื‘ื“ื™ืงื” ืžืกืคื™ืง ืžืชืื™ื ืœืžื” ืฉื™ื”ื™ื” ื‘ื™ื™ืฆื•ืจ, ื‘ืชื ืื™ื ืžืกืคื™ืงื™ื ืœืขื‘ื•ื“ื” ื‘ื™ื™ืฆื•ืจ.

ื•ื‘ื›ืŸ, ื ื ื™ื— ืฉื™ื“ื•ืข ืงื‘ื•ืฆื” ืฉืœ ืคืจืžื˜ืจื™ ื”ืชืืžื” ืขื‘ื•ืจ ืžืขืจื›ืช ืฉื™ืจื•ืช ื–ื•, ืืฉืจ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืžืขืจื›ืช ื–ื• ืžื‘ื—ื™ื ืช ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœ ืขื‘ื•ื“ืชื”.

ื•ืžื” ื”ื‘ืขื™ื” - ืื™ืŸ ื”ื‘ื ื” ืžืœืื” ืžืกืคื™ืง ืฉืœ ืžืขืจื›ืช ื”ืฉื™ืจื•ืช ื”ื–ื•, ื›ื–ื• ืฉืžืืคืฉืจืช ืœืš ืœื”ื’ื“ื™ืจ ื‘ืžื•ืžื—ื™ื•ืช ืืช ื”ื”ื’ื“ืจื•ืช ืฉืœ ืžืขืจื›ืช ื–ื• ืœืขื•ืžืก ืขืชื™ื“ื™ ืขืœ ืคืœื˜ืคื•ืจืžื” ื ืชื•ื ื” ื•ืœืงื‘ืœ ืืช ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ื”ื ื“ืจืฉืช ืฉืœ ื”ืžืขืจื›ืช.

ื ื•. ื–ื” ื›ืžืขื˜ ืชืžื™ื“ ื”ืžืฆื‘.

ืžื” ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ื›ืืŸ?

ื•ื‘ื›ืŸ, ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืขื•ืœื” ื‘ืจืืฉ ื”ื•ื ืœื”ืกืชื›ืœ ืขืœ ื”ืชื™ืขื•ื“ ืฉืœ ื”ืžืขืจื›ืช ื”ื–ื•. ื”ื‘ืŸ ืžื”ื ื”ื˜ื•ื•ื—ื™ื ื”ืžืงื•ื‘ืœื™ื ืขื‘ื•ืจ ื”ืขืจื›ื™ื ืฉืœ ืคืจืžื˜ืจื™ ื”ื”ืชืืžื”. ื•ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช ื”ื™ืจื™ื“ื” ื‘ืงื•ืื•ืจื“ื™ื ื˜ื•ืช, ื‘ื—ืจ ืขืจื›ื™ื ืขื‘ื•ืจ ืคืจืžื˜ืจื™ ืžืขืจื›ืช ื‘ื‘ื“ื™ืงื•ืช.

ื”ึธื”ึตืŸ. ืชืŸ ืœืžืขืจื›ืช ืื™ื–ื•ืฉื”ื™ ืชืฆื•ืจื”, ื‘ืฆื•ืจื” ืฉืœ ืกื˜ ืกืคืฆื™ืคื™ ืฉืœ ืขืจื›ื™ื ืขื‘ื•ืจ ืคืจืžื˜ืจื™ ื”ืชืฆื•ืจื” ืฉืœื”.

ื”ืคืขืœ ืขืœื™ื• ืขื•ืžืก ื‘ื“ื™ืงื”, ื‘ืืžืฆืขื•ืช ืžื—ื•ืœืœ ืขื•ืžืกื™ื ื–ื” ืžืžืฉ ื›ืœื™-ืขื–ืจ.
ื•ืชืจืื” ืืช ื”ืขืจืš - ื”ืชื’ื•ื‘ื”, ืื• ืžื“ื“ ืฉืœ ืื™ื›ื•ืช ื”ืžืขืจื›ืช.

ื”ืžื—ืฉื‘ื” ื”ืฉื ื™ื™ื” ืขืฉื•ื™ื” ืœื”ื™ื•ืช ื”ืžืกืงื ื” ืฉืžื“ื•ื‘ืจ ื‘ื–ืžืŸ ืืจื•ืš ืžืื•ื“.

ื•ื‘ื›ืŸ, ื›ืœื•ืžืจ: ืื ื™ืฉ ื”ืจื‘ื” ืคืจืžื˜ืจื™ ื”ื’ื“ืจื”, ืื ื˜ื•ื•ื—ื™ ื”ืขืจื›ื™ื ืฉืœื”ื ื”ืžื•ืคืขืœื™ื ื’ื“ื•ืœื™ื, ืื ื›ืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื‘ื•ื“ื“ืช ืœื•ืงื—ืช ื”ืจื‘ื” ื–ืžืŸ ืœื”ืฉืœื™ื, ืื–: ื›ืŸ, ื›ืœ ื–ื” ืขืฉื•ื™ ืœืงื—ืช ื–ืžืŸ ื‘ืœืชื™ ืžืชืงื‘ืœ ืขืœ ื”ื“ืขืช ื”ืจื‘ื” ื–ืžืŸ.

ื•ื‘ื›ืŸ, ื”ื ื” ืžื” ืฉืืชื” ื™ื›ื•ืœ ืœื”ื‘ื™ืŸ ื•ืœื–ื›ื•ืจ.

ืืชื” ื™ื›ื•ืœ ืœื’ืœื•ืช ืฉื‘ืงื‘ื•ืฆืช ื”ืขืจื›ื™ื ืฉืœ ืคืจืžื˜ืจื™ ื”ื’ื“ืจื•ืช ืžืขืจื›ืช ื”ืฉื™ืจื•ืช ื™ืฉ ื•ืงื˜ื•ืจ, ื›ืจืฆืฃ ืฉืœ ื›ืžื” ืขืจื›ื™ื.

ื›ืœ ื•ืงื˜ื•ืจ ื›ื–ื”, ื‘ื”ื™ื•ืชื• ื“ื‘ืจื™ื ืฉื•ื•ื™ื (ื‘ื›ืš ืฉื”ื•ื ืื™ื ื• ืžื•ืฉืคืข ืžื•ื•ืงื˜ื•ืจ ื–ื”), ืžืชืื™ื ืœืขืจืš ืžื˜ืจื™ ืžื•ื’ื“ืจ ืœื—ืœื•ื˜ื™ืŸ - ืื™ื ื“ื™ืงื˜ื•ืจ ืœืื™ื›ื•ืช ืคืขื•ืœืช ื”ืžืขืจื›ืช ื‘ืขื•ืžืก ื‘ื“ื™ืงื”.

ื›ืœื•ืžืจ

ื”ื‘ื” ื ืกืžืŸ ืืช ื•ืงื˜ื•ืจ ืชืฆื•ืจืช ื”ืžืขืจื›ืช ื‘ืชื•ืจ ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”ืื™ืคื” ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”; ืื™ืคื” ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” - ืžืกืคืจ ืคืจืžื˜ืจื™ื ืฉืœ ืชืฆื•ืจืช ื”ืžืขืจื›ืช, ื›ืžื” ืžื”ืคืจืžื˜ืจื™ื ื”ืœืœื• ื™ืฉ.

ื•ืขืจืš ื”ืžื“ื“ ื”ืžืงื‘ื™ืœ ืœื›ืš ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื‘ื•ืื• ื ืกืžืŸ ืืช ื–ื” ื‘ืชื•ืจ
ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”, ืื– ื ืงื‘ืœ ืคื•ื ืงืฆื™ื”: ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”

ื•ื‘ื›ืŸ, ืื ื›ืŸ: ื”ื›ืœ ืžืกืชื›ื ืžื™ื“, ื‘ืžืงืจื” ืฉืœื™: ื›ืžืขื˜ ื ืฉื›ื— ืžื™ืžื™ ื”ืกื˜ื•ื“ื ื˜ื™ื ืฉืœื™, ืืœื’ื•ืจื™ืชืžื™ื ืœื—ื™ืคื•ืฉ ื”ืงื™ืฆื•ืŸ ืฉืœ ืคื•ื ืงืฆื™ื”.

ืื•ืงื™ื™, ืื‘ืœ ื›ืืŸ ืขื•ืœื” ืฉืืœื” ืืจื’ื•ื ื™ืช ื•ื™ื™ืฉื•ืžื™ืช: ื‘ืื™ื–ื” ืืœื’ื•ืจื™ืชื ืœื”ืฉืชืžืฉ.

  1. ื‘ืžื•ื‘ืŸ - ื›ื“ื™ ืฉืชื•ื›ืœื• ืœืงื•ื“ื“ ืคื—ื•ืช ื‘ื™ื“.
  2. ื•ื›ื“ื™ ืฉื–ื” ื™ืขื‘ื•ื“, ื›ืœื•ืžืจ. ืžืฆื ืืช ื”ืงื™ืฆื•ืŸ (ืื ื™ืฉ ื›ื–ื”), ื•ื‘ื›ืŸ, ืœืคื—ื•ืช ืžื”ืจ ื™ื•ืชืจ ืžื™ืจื™ื“ื” ื‘ืงื•ืื•ืจื“ื™ื ื˜ื•ืช.

ื”ื ืงื•ื“ื” ื”ืจืืฉื•ื ื” ืžืจืžื–ืช ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืกืชื›ืœ ืœืขื‘ืจ ื›ืžื” ืกื‘ื™ื‘ื•ืช ืฉื‘ื”ืŸ ืืœื’ื•ืจื™ืชืžื™ื ื›ืืœื” ื›ื‘ืจ ื™ื•ืฉืžื•, ื•ื”ื, ื‘ืฆื•ืจื” ื›ืœืฉื”ื™, ืžื•ื›ื ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืงื•ื“.
ื•ื‘ื›ืŸ ืื ื™ ื™ื•ื“ืข python ะธ cran-r

ื”ื ืงื•ื“ื” ื”ืฉื ื™ื™ื” ืคื™ืจื•ืฉื” ืฉืขืœื™ืš ืœืงืจื•ื ืขืœ ื”ืืœื’ื•ืจื™ืชืžื™ื ืขืฆืžื, ืžื” ื”ื, ืžื” ื”ื“ืจื™ืฉื•ืช ืฉืœื”ื, ืชื›ื•ื ื•ืช ื”ืขื‘ื•ื“ื” ืฉืœื”ื.

ื•ืžื” ืฉื”ื ื ื•ืชื ื™ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืชื•ืคืขื•ืช ืœื•ื•ืื™ ืฉื™ืžื•ืฉื™ื•ืช - ืชื•ืฆืื•ืช, ืื• ื™ืฉื™ืจื•ืช ืžื”ืืœื’ื•ืจื™ืชื ืขืฆืžื•.

ืื• ืฉื ื™ืชืŸ ืœืงื‘ืœ ืื•ืชื ืžืชื•ืฆืื•ืช ื”ืืœื’ื•ืจื™ืชื.

ื”ืจื‘ื” ืชืœื•ื™ ื‘ืชื ืื™ ื”ืงืœื˜.

ืœื“ื•ื’ืžื”, ืื, ืžืกื™ื‘ื” ื›ืœืฉื”ื™, ืืชื” ืฆืจื™ืš ืœืงื‘ืœ ืชื•ืฆืื” ืžื”ืจ ื™ื•ืชืจ, ื•ื‘ื›ืŸ, ืืชื” ืฆืจื™ืš ืœื”ืกืชื›ืœ ืœืขื‘ืจ ืืœื’ื•ืจื™ืชืžื™ื ืฉืœ ื™ืจื™ื“ื” ื‘ืฉื™ืคื•ืข ื•ืœื‘ื—ื•ืจ ืื—ื“ ืžื”ื.

ืื•, ืื ื”ื–ืžืŸ ืœื ื›ืœ ื›ืš ื—ืฉื•ื‘, ืืชื” ื™ื›ื•ืœ, ืœืžืฉืœ, ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืกื˜ื•ื›ืกื˜ื™ื•ืช, ื›ืžื• ืืœื’ื•ืจื™ืชื ื’ื ื˜ื™.

ืื ื™ ืžืฆื™ืข ืœืฉืงื•ืœ ืืช ื”ืขื‘ื•ื“ื” ืฉืœ ื’ื™ืฉื” ื–ื•, ื‘ื—ื™ืจืช ืชืฆื•ืจืช ื”ืžืขืจื›ืช, ื‘ืืžืฆืขื•ืช ืืœื’ื•ืจื™ืชื ื’ื ื˜ื™, ื‘ืขื‘ื•ื“ื” ื”ื‘ืื”, ื›ื‘ื™ื›ื•ืœ: ืขื‘ื•ื“ืช ืžืขื‘ื“ื”.

ื”ืชื—ืœืชื™:

  1. ืฉื™ื”ื™ื”, ื›ืžืขืจื›ืช ืฉื™ืจื•ืช: oracle xe 18c
  2. ืชืŸ ืœื–ื” ืœืฉืจืช ืืช ื”ืคืขื™ืœื•ืช ื”ืขืกืงื™ืช ื•ื”ืžื˜ืจื”: ืœื”ืฉื™ื’ ืืช ื”ืชืคื•ืงื” ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™ืช ืฉืœ ืชืช ืžืกื“ ื”ื ืชื•ื ื™ื, ื‘ืขืกืงืื•ืช/ืฉื ื™ื•ืช.
  3. ืขืกืงืื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืฉื•ื ื•ืช ืžืื•ื“ ื‘ืื•ืคื™ ื”ืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ื•ื‘ื”ืงืฉืจ ื”ืขื‘ื•ื“ื”.
    ื‘ื•ืื• ื ืกื›ื™ื ืฉืžื“ื•ื‘ืจ ื‘ืขืกืงืื•ืช ืฉืื™ื ืŸ ืžืขื‘ื“ื•ืช ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื ืชื•ื ื™ื ื˜ื‘ืœืื™ื™ื.
    ื‘ืžื•ื‘ืŸ ื–ื” ืฉื”ื ืœื ืžื™ื™ืฆืจื™ื ื™ื•ืชืจ ื ืชื•ื ื™ ื‘ื™ื˜ื•ืœ ืžืืฉืจ ืœืขืฉื•ืช ืžื—ื“ืฉ ื•ืœื ืžืขื‘ื“ื™ื ืื—ื•ื–ื™ื ื’ื“ื•ืœื™ื ืฉืœ ืฉื•ืจื•ืช ื•ื˜ื‘ืœืื•ืช ื’ื“ื•ืœื•ืช.

ืžื“ื•ื‘ืจ ื‘ืขืกืงืื•ืช ืฉืžืฉื ื•ืช ืฉื•ืจื” ืื—ืช ื‘ื˜ื‘ืœื” ื’ื“ื•ืœื” ืคื—ื•ืช ืื• ื™ื•ืชืจ, ืขื ืžืกืคืจ ืงื˜ืŸ ืฉืœ ืื™ื ื“ืงืกื™ื ื‘ื˜ื‘ืœื” ื–ื•.

ื‘ืžืฆื‘ ื–ื”: ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœ ืชืช ืžืกื“ ื”ื ืชื•ื ื™ื ืœืขื™ื‘ื•ื“ ืขืกืงืื•ืช ืชื™ืงื‘ืข, ื‘ื”ืกืชื™ื™ื’ื•ืช, ืœืคื™ ืื™ื›ื•ืช ื”ืขื™ื‘ื•ื“ ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื—ื™ื–ื•ืจ.

ื›ืชื‘ ื•ื™ืชื•ืจ - ืื ื ื“ื‘ืจ ืกืคืฆื™ืคื™ืช ืขืœ ื”ื’ื“ืจื•ืช subdb.

ืžื›ื™ื•ื•ืŸ ืฉื‘ืžืงืจื” ื”ื›ืœืœื™ ื™ื™ืชื›ื ื•, ืœืžืฉืœ, ื ืขื™ืœื•ืช ื˜ืจื ื–ืงืฆื™ื•ืช ื‘ื™ืŸ ื”ืคืขืœื•ืช ืฉืœ SQL, ืขืงื‘ ืขื™ืฆื•ื‘ ืขื‘ื•ื“ืช ื”ืžืฉืชืžืฉ ืขื ื ืชื•ื ื™ื ื˜ื‘ืœืื™ื™ื ื•/ืื• ื”ืžื•ื“ืœ ื”ื˜ื‘ืœืื™.

ืžื” ืฉื›ืžื•ื‘ืŸ ื™ืฉืคื™ืข ืžื“ื›ื ืขืœ ืžื“ื“ ื”-TPS ื•ื–ื” ื™ื”ื™ื” ื’ื•ืจื ืืงืกื•ื’ื ื™, ื™ื—ืกื™ืช ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื”ืžืฉื ื”: ื•ื‘ื›ืŸ, ื›ืš ืชื•ื›ื ืŸ ื”ืžื•ื“ืœ ื”ื˜ื‘ืœืื™ ื•ื”ืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ื‘ื• ืฉืžืชืจื—ืฉื•ืช ื—ืกื™ืžื•ืช.

ืœื›ืŸ, ืœืžืขืŸ ื˜ื•ื”ืจ ื”ื ื™ืกื•ื™, ื ืฉืœืœ ื’ื•ืจื ื–ื”, ื•ืœื”ืœืŸ ืื‘ื”ื™ืจ ื›ื™ืฆื“ ื‘ื“ื™ื•ืง.

  1. ื”ื‘ื” ื ื ื™ื—, ืœื™ืชืจ ื‘ื™ื˜ื—ื•ืŸ, ืฉ-100% ืžืคืงื•ื“ื•ืช ื”-SQL ื”ื ืฉืœื—ื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ืŸ ืคืงื•ื“ื•ืช DML.
    ืชืŸ ืœืžืืคื™ื™ื ื™ ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืžืฉืชืžืฉ ืขื ืชืช-ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืœื”ื™ื•ืช ื–ื”ื™ื ื‘ื‘ื“ื™ืงื•ืช.
    ื›ืœื•ืžืจ: ืžืกืคืจ ืžืคื’ืฉื™ SKL, ื ืชื•ื ื™ื ื˜ื‘ืœืื™ื™ื, ื›ื™ืฆื“ ืžืคื’ืฉื™ SKL ืขื•ื‘ื“ื™ื ืื™ืชื.
  2. Subd ืขื•ื‘ื“ ื‘ FORCE LOGGING, ARCHIVELOG ืื•ืคื ื™ื. ืžืฆื‘ Flashback-Datebank ื›ื‘ื•ื™, ื‘ืจืžืช 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 ืฉื•ืืคืช ืœื‘ื—ื•ืŸ ืคืœื˜ืคื•ืจืžื•ืช
ืœืœื ื˜ืขื ื” ืœื™ื™ืฉื•ื. ืื™ ืืคืฉืจ ืœื ื”ื•ื’ ื‘ื‘ื™ืฆื•ืขื™ ื—ื•ืžืจื” ืžืงืกื™ืžืœื™ื™ื
ื‘ืืžืฆืขื•ืช ืงื•ื“ ื™ื™ืฉื•ื ื”ืžื—ื•ื‘ืจ, ืœืžืฉืœ, ืœื ืขื™ืœืช ื™ื™ืฉื•ื ืื• ืืคื™ืœื•
ืฉื™ืชื•ืฃ ื‘ืœื•ืงื™ื ืฉืœ Oracle Database. ื–ื” ื ื›ื•ืŸ - ื™ืฉ ืชืงื•ืจื” ื‘ืขืช ืฉื™ืชื•ืฃ ื ืชื•ื ื™ื
ื‘ื‘ืœื•ืง ื ืชื•ื ื™ื! ืื‘ืœ SLOB - ื‘ืคืจื™ืกืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœื• - ื—ืกื™ืŸ ื‘ืคื ื™ ื˜ืขื ื” ื›ื–ื•.

ื”ื”ื›ืจื–ื” ื”ื–ื•: ืชื•ืืžืช, ื–ื” ื›ืŸ.
ื–ื” ื ื•ื— ืœื•ื•ืกืช ืืช ืžื™ื“ืช ื”ื”ืงื‘ืœื” ืฉืœ ืžืคื’ืฉื™ cl, ื–ื” ื”ืžืคืชื— -t ืœื”ืคืขื™ืœ ืืช ื›ืœื™ ื”ืฉื™ืจื•ืช runit.sh ืž-SLOB
ืื—ื•ื– ืคืงื•ื“ื•ืช DML ืžื•ืกื“ืจ, ื‘ืžืกืคืจ ื”ื•ื“ืขื•ืช ื”ื˜ืงืกื˜ ื”ื ืฉืœื—ื•ืช ืœ-subd, ื›ืœ ืกืฉืŸ ื˜ืงืกื˜, ืคืจืžื˜ืจ UPDATE_PCT
ื‘ื ืคืจื“ ื•ืžืื•ื“ ื ื•ื—: SLOB ืขืฆืžื•, ืœืคื ื™ ื•ืื—ืจื™ ืกืฉืŸ ื”ื˜ืขื™ื ื” - ืžื›ื™ืŸ ืกื˜ื˜ื™ืกื˜ื™ืงื”, ืื• awr-snapshots (ืžื” ืžื•ื’ื“ืจ ืœื”ื™ื•ืช ืžื•ื›ืŸ).

ืขื ื–ืืช, ื”ืชื‘ืจืจ ื›ื™ SLOB ืื™ื ื• ืชื•ืžืš ื‘ื”ืคืขืœื•ืช SQL ื‘ืื•ืจืš ืฉืœ ืคื—ื•ืช ืž-30 ืฉื ื™ื•ืช.
ืœื›ืŸ, ืงื•ื“ื ืงื•ื“ื“ืชื™ ืืช ื”ื’ืจืกื” ืฉืœื™, ืคื•ืขืœ-ืื™ื›ืจื™, ืฉืœ ื”ืžืขืžื™ืก, ื•ืื– ื”ื™ื ื ืฉืืจื” ื‘ืคืขื•ืœื”.

ืชืŸ ืœื™ ืœื”ื‘ื”ื™ืจ ืžื” ื”ืžืขืžื™ืก ืขื•ืฉื” ื•ืื™ืš ื”ื•ื ืขื•ืฉื” ืืช ื–ื”, ืœืžืขืŸ ื”ื‘ื”ื™ืจื•ืช.
ื‘ืขื™ืงืจื•ืŸ ื”ืžืขืžื™ืก ื ืจืื” ื›ืš:

ืงื•ื“ ืขื•ื‘ื“

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 ื ืคืจื“ ื‘-DB) ื ื•ืฆืจืช ื˜ื‘ืœื” ื ืคืจื“ืช, ืื™ืชื” ืขื•ื‘ื“ ื”ืขื•ื‘ื“.

ื–ื” ืžื‘ื˜ื™ื— ื”ื™ืขื“ืจ ื ืขื™ืœื•ืช ืขืกืงืื•ืช ื‘ื™ืŸ ื”ืคืขืœื•ืช ืขื•ื‘ื“ื™ื.
ื›ืœ ืขื•ื‘ื“: ืขื•ืฉื” ืื•ืชื• ื“ื‘ืจ, ืขื ื”ืฉื•ืœื—ืŸ ืฉืœื•, ื”ืฉื•ืœื—ื ื•ืช ื›ื•ืœื ืื•ืชื• ื“ื‘ืจ.
ื›ืœ ื”ืขื•ื‘ื“ื™ื ืžื‘ืฆืขื™ื ืขื‘ื•ื“ื” ื‘ืžืฉืš ืื•ืชื• ืคืจืง ื–ืžืŸ.
ื™ืชืจื” ืžื›ืš, ืœื–ืžืŸ ืžืกืคื™ืง ืืจื•ืš ื›ืš ืฉื‘ื•ื•ื“ืื™ ื™ืชืจื—ืฉ, ืœืžืฉืœ, ืžืขื‘ืจ ื™ื•ืžืŸ, ื•ื™ื•ืชืจ ืžืคืขื ืื—ืช.
ื•ื‘ื›ืŸ, ื‘ื”ืชืื, ืขืœื•ื™ื•ืช ื•ื”ืฉืคืขื•ืช ื ืœื•ื•ืช.
ื‘ืžืงืจื” ืฉืœื™, ื”ื’ื“ืจืชื™ ืืช ืžืฉืš ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืขื•ื‘ื“ื™ื ืœ-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. ื’ื•ื“ืœ ืงื‘ื•ืฆื•ืช ื™ื•ืžืŸ ืžืกื“ ื ืชื•ื ื™ื. ื˜ื•ื•ื— ืขืจื›ื™ื: [32, 1024] MB;
  2. ืžืกืคืจ ืงื‘ื•ืฆื•ืช ื”ื™ื•ืžืŸ ื‘ืžืื’ืจ. ื˜ื•ื•ื— ืขืจื›ื™ื: [2,32];
  3. log_archive_max_processes ื˜ื•ื•ื— ืขืจื›ื™ื: [1,8];
  4. commit_logging ืฉื ื™ ืขืจื›ื™ื ืžื•ืชืจื™ื: batch|immediate;
  5. commit_wait ืฉื ื™ ืขืจื›ื™ื ืžื•ืชืจื™ื: wait|nowait;
  6. log_buffer ื˜ื•ื•ื— ืขืจื›ื™ื: [2,128] MB.
  7. log_checkpoint_timeout ื˜ื•ื•ื— ืขืจื›ื™ื: [60,1200] ืฉื ื™ื•ืช
  8. db_writer_processes ื˜ื•ื•ื— ืขืจื›ื™ื: [1,4]
  9. undo_retention ื˜ื•ื•ื— ืขืจื›ื™ื: [30;300] ืฉื ื™ื•ืช
  10. transactions_per_rollback_segment ื˜ื•ื•ื— ืขืจื›ื™ื: [1,8]
  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, ื›ืœื•ืžืจ: ื›ืœ ื”ืžื ื™ืคื•ืœืฆื™ื•ืช ืขื ื”ืžืขืจื›ืช ื”ืžื•ืชืืžืช ืžืชื•ื–ืžืจืช ื‘ืฆื•ืจื” ืฉืœ ืชืกืจื™ื˜ 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 ืชื›ื•ื ื•ืช ืชืช ืฉื’ืจืชื™ื•ืช ga ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ืžืฆื•ื™ืŸ ืื–ื•ืจ ืฉืœ ืžืจื—ื‘ ื”ื—ื™ืคื•ืฉ, ืฉื‘ืชื•ื›ื• ื™ื‘ื•ืฆืข ื—ื™ืคื•ืฉ ืขื‘ื•ืจ ื•ืงื˜ื•ืจ (ืื• ื•ืงื˜ื•ืจื™ื) ืฉื›ืืœื” ืฉืขื‘ื•ืจื ื™ืชืงื‘ืœ ื”ืขืจืš ื”ืžืจื‘ื™ ืฉืœ ืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ.

ืชืช-ื”ืฉื’ืจื” ga ืžื‘ืฆืขืช ื—ื™ืคื•ืฉ ืชื•ืš ืžืงืกื•ื ืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ.

ื•ื‘ื›ืŸ, ืื ื›ืŸ, ืžืกืชื‘ืจ ืฉื‘ืžืงืจื” ื–ื”, ื™ืฉ ืฆื•ืจืš ืฉืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ, ื”ื‘ื ืช ื”ื•ื•ืงื˜ื•ืจ ื›ืžืขืจื›ืช ืฉืœ ืขืจื›ื™ื ืขื‘ื•ืจ ืคืจืžื˜ืจื™ื ืžืกื•ื™ืžื™ื ืฉืœ ื”-subd, ืชืงื‘ืœ ืžื“ื“ ืžื”-subd.

ื›ืœื•ืžืจ: ื›ืžื”, ืขื ื”ื’ื“ืจืช subd ื ืชื•ื ื” ื•ืขื•ืžืก ื ืชื•ืŸ ืขืœ subd: ื”-subd ืžืขื‘ื“ ื˜ืจื ื–ืงืฆื™ื•ืช ื‘ืฉื ื™ื™ื”.

ื›ืœื•ืžืจ, ื‘ืขืช ื”ืคืชื™ื—ื”, ื™ืฉ ืœื‘ืฆืข ืืช ื”ืฉืœื‘ ื”ืจื‘ ื”ื‘ื ื‘ืชื•ืš ืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ:

  1. ืขื™ื‘ื•ื“ ื•ืงื˜ื•ืจ ื”ืงืœื˜ ืฉืœ ืžืกืคืจื™ื - ื”ืžืจืชื• ืœืขืจื›ื™ื ืขื‘ื•ืจ ืคืจืžื˜ืจื™ ื”ืžืฉื ื”.
  2. ื ื™ืกื™ื•ืŸ ืœื™ืฆื•ืจ ืžืกืคืจ ื ืชื•ืŸ ืฉืœ ืงื‘ื•ืฆื•ืช ื—ื•ื–ืจื•ืช ื‘ื’ื•ื“ืœ ื ืชื•ืŸ. ื™ืชืจื” ืžื›ืš, ื”ื ื™ืกื™ื•ืŸ ืขืœื•ืœ ืœื”ื™ื›ืฉืœ.
    ืงื‘ื•ืฆื•ืช ืžื’ื–ื™ื ื™ื ืฉื›ื‘ืจ ื”ื™ื• ืงื™ื™ืžื•ืช ื‘ืกื‘"ื“, ื‘ื›ืžื•ืช ืžืกื•ื™ืžืช ื•ื‘ื’ื•ื“ืœ ืžืกื•ื™ื, ืขืœ ื˜ื”ืจืช ื”ื ื™ืกื•ื™ - ื“.ื‘. ื ืžื—ืง.
  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 ืžืขื‘ื“ืช ื•ืงื˜ื•ืจื™ื, ืื• ื™ื•ืชืจ ื ื›ื•ืŸ, ื›ืจื•ืžื•ื–ื•ืžื™ื.
ืฉื‘ื”ื, ืžื” ืฉื”ื›ื™ ื—ืฉื•ื‘ ืœื ื• ื”ื•ื ื‘ื—ื™ืจืช ื”ื›ืจื•ืžื•ื–ื•ืžื™ื ืขื ื’ื ื™ื ืฉืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ ืžื™ื™ืฆืจืช ืขื‘ื•ืจื ืขืจื›ื™ื ื’ื“ื•ืœื™ื.

ื–ื”ื•, ื‘ืžื”ื•ืชื•, ืชื”ืœื™ืš ื”ื—ื™ืคื•ืฉ ืื—ืจ ืงื‘ื•ืฆืช ื”ื›ืจื•ืžื•ื–ื•ืžื™ื ื”ืื•ืคื˜ื™ืžืœื™ืช ื‘ืืžืฆืขื•ืช ื•ืงื˜ื•ืจ ื‘ืžืจื—ื‘ ื—ื™ืคื•ืฉ N-ืžืžื“ื™.

ืžืื•ื“ ื‘ืจื•ืจ, ืžืคื•ืจื˜ ื”ืกื‘ืจ, ืขื ื“ื•ื’ืžืื•ืช ืฉืœ R-code, ื”ืขื‘ื•ื“ื” ืฉืœ ืืœื’ื•ืจื™ืชื ื’ื ื˜ื™.

ืื ื™ ืจื•ืฆื” ืœืฆื™ื™ืŸ ื‘ื ืคืจื“ ืฉืชื™ ื ืงื•ื“ื•ืช ื˜ื›ื ื™ื•ืช.

ืงืจื™ืื•ืช ืขื–ืจ ืžื”ืคื•ื ืงืฆื™ื” evaluate, ืœืžืฉืœ, stop-start, ืงื‘ื™ืขืช ื”ืขืจืš ืฉืœ ื”ืคืจืžื˜ืจ 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)

ื–ื” ื—ืฉื•ื‘, ืžื›ื™ื•ื•ืŸ ืฉืžืžืขืจืš ื ืชื•ื ื™ื ื–ื”, ื ื™ืชืŸ ื™ื”ื™ื” ืœืงื‘ืœ ืžื™ื“ืข ื ื•ืกืฃ ืœื’ื‘ื™ ืžื™ ืžื”ืžืจื›ื™ื‘ื™ื ืฉืœ ื•ืงื˜ื•ืจ ื”ื›ื•ื•ื ื•ืŸ ืžืฉืคื™ืข ื™ื•ืชืจ ืื• ืคื—ื•ืช ืขืœ ื”ืขืจืš ื”ืžื˜ืจื™.

ื›ืœื•ืžืจ: ื ื™ืชืŸ ื™ื”ื™ื” ืœื‘ืฆืข ื ื™ืชื•ื— ืชื›ื•ื ื•ืช-ื—ืฉื™ื‘ื•ืช.

ืื– ืžื” ื™ื›ื•ืœ ืœืงืจื•ืช?

ื‘ืฆื•ืจืช ื’ืจืฃ, ืื ืืชื” ืžื–ืžื™ืŸ ืืช ื”ืžื‘ื—ื ื™ื ื‘ืกื“ืจ ืžื˜ืจื™ ืขื•ืœื”, ื”ืชืžื•ื ื” ื”ื™ื ื›ื“ืœืงืžืŸ:

ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”

ื›ืžื” ื ืชื•ื ื™ื ื”ืชื•ืืžื™ื ืืช ื”ืขืจื›ื™ื ื”ืงื™ืฆื•ื ื™ื™ื ืฉืœ ื”ืžื“ื“:
ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”
ื›ืืŸ, ื‘ืฆื™ืœื•ื ื”ืžืกืš ืขื ื”ืชื•ืฆืื•ืช, ืื‘ื”ื™ืจ: ื”ืขืจื›ื™ื ืฉืœ ื•ืงื˜ื•ืจ ื”ื›ื•ื•ื ื•ืŸ ื ื™ืชื ื™ื ื‘ืžื•ื ื—ื™ื ืฉืœ ืงื•ื“ ืคื•ื ืงืฆื™ื™ืช ื”ื›ื•ืฉืจ, ืœื ื‘ืžื•ื ื—ื™ื ืฉืœ ืจืฉื™ืžืช ืžืกืคืจ ื”ืคืจืžื˜ืจื™ื/ื˜ื•ื•ื—ื™ ืขืจื›ื™ ื”ืคืจืžื˜ืจื™ื, ืฉื ื•ืกื—ื”. ืœืžืขืœื” ื‘ื˜ืงืกื˜.

ื ื•. ื”ืื ื–ื” ื”ืจื‘ื” ืื• ืžืขื˜, ~8 ืืœืฃ ื˜ืคืก: ืฉืืœื” ื ืคืจื“ืช.
ื‘ืžืกื’ืจืช ืขื‘ื•ื“ืช ืžืขื‘ื“ื” ื”ื ืชื•ืŸ ื”ื–ื” ืœื ื—ืฉื•ื‘, ืžื” ืฉื—ืฉื•ื‘ ื–ื” ื”ื“ื™ื ืžื™ืงื”, ืื™ืš ื”ืขืจืš ื”ื–ื” ืžืฉืชื ื”.

ื”ื“ื™ื ืžื™ืงื” ื›ืืŸ ื˜ื•ื‘ื”.
ื‘ืจื•ืจ ืฉืœืคื—ื•ืช ื’ื•ืจื ืื—ื“ ืžืฉืคื™ืข ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขืœ ืขืจื›ื• ืฉืœ ื”ืžื“ื“, ื”ืืœื’ื•ืจื™ืชื ื”-ga, ื”ืžืžื™ื™ืŸ ืืช ื•ืงื˜ื•ืจื™ ื”ื›ืจื•ืžื•ื–ื•ืžื™ื: ืžื›ื•ืกื”.
ืื ืœืฉืคื•ื˜ ืœืคื™ ื”ื“ื™ื ืžื™ืงื” ื”ื ืžืจืฆืช ืœืžื“ื™ ืฉืœ ืขืจื›ื™ ื”ืขืงื•ืžื”, ื™ืฉ ืœืคื—ื•ืช ืขื•ื“ ื’ื•ืจื ืื—ื“ ืฉืœืžืจื•ืช ืฉื”ื•ื ืงื˜ืŸ ืžืฉืžืขื•ืชื™ืช, ื™ืฉ ืœื• ื”ืฉืคืขื”.

ื–ื” ื”ืžืงื•ื ืฉื‘ื• ืืชื” ืฆืจื™ืš ืืช ื–ื” attribute-importance ื ื™ืชื•ื— ื›ื“ื™ ืœื”ื‘ื™ืŸ ืื™ืœื• ืชื›ื•ื ื•ืช (ื•ื‘ื›ืŸ, ื‘ืžืงืจื” ื–ื”, ืจื›ื™ื‘ื™ื ืฉืœ ื•ืงื˜ื•ืจ ื”ื›ื•ื•ื ื•ืŸ) ื•ืขื“ ื›ืžื” ื”ื ืžืฉืคื™ืขื™ื ืขืœ ื”ืขืจืš ื”ืžื˜ืจื™.
ื•ืžื”ืžื™ื“ืข ื”ื–ื”: ื”ื‘ื™ื ื• ืื™ืœื• ื’ื•ืจืžื™ื ื”ื•ืฉืคืขื• ืžืฉื™ื ื•ื™ื™ื ื‘ืชื›ื•ื ื•ืช ืžืฉืžืขื•ืชื™ื•ืช.

ื”ืคืขืœื” attribute-importance ืืคืฉืจื™ ื‘ื“ืจื›ื™ื ืฉื•ื ื•ืช.

ืœืžื˜ืจื•ืช ืืœื”, ืื ื™ ืื•ื”ื‘ ืืช ื”ืืœื’ื•ืจื™ืชื randomForest ื—ื‘ื™ืœืช R ื‘ืื•ืชื• ืฉื (ืชื™ืขื•ื“)
randomForest, ื›ืคื™ ืฉืื ื™ ืžื‘ื™ืŸ ืืช ืขื‘ื•ื“ืชื• ื‘ืื•ืคืŸ ื›ืœืœื™ ื•ืืช ื”ื’ื™ืฉื” ืฉืœื• ืœื”ืขืจื›ืช ื—ืฉื™ื‘ื•ืชืŸ ืฉืœ ืชื›ื•ื ื•ืช ื‘ืคืจื˜, ื‘ื•ื ื” ืžื•ื“ืœ ืžืกื•ื™ื ืฉืœ ื”ืชืœื•ืช ืฉืœ ืžืฉืชื ื” ื”ืชื’ื•ื‘ื” ื‘ืชื›ื•ื ื•ืช.

ื‘ืžืงืจื” ืฉืœื ื•, ืžืฉืชื ื” ื”ืชื’ื•ื‘ื” ื”ื•ื ืžื“ื“ ื”ืžืชืงื‘ืœ ืžืžืกื“ ื”ื ืชื•ื ื™ื ื‘ืžื‘ื—ื ื™ ืขื•ืžืก: tps;
ื•ืชื›ื•ื ื•ืช ื”ืŸ ืžืจื›ื™ื‘ื™ื ืฉืœ ื•ืงื˜ื•ืจ ื”ื›ื•ื•ื ื•ืŸ.

ืื– randomForest ืžืขืจื™ืš ืืช ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ื›ืœ ืชื›ื•ื ืช ืžื•ื“ืœ ืขื ืฉื ื™ ืžืกืคืจื™ื: %IncMSE - ื›ื™ืฆื“ ื”ื ื•ื›ื—ื•ืช/ื”ื™ืขื“ืจ ืฉืœ ืชื›ื•ื ื” ื–ื• ื‘ืžื•ื“ืœ ืžืฉื ื” ืืช ืื™ื›ื•ืช ื”-MSE ืฉืœ ืžื•ื“ืœ ื–ื” (ืฉื’ื™ืื” ื‘ืจื™ื‘ื•ืข ืžืžื•ืฆืข);

ื•- IncNodePurity ื”ื•ื ืžืกืคืจ ืฉืžืฉืงืฃ ืขื“ ื›ืžื”, ื‘ื”ืชื‘ืกืก ืขืœ ื”ืขืจื›ื™ื ืฉืœ ืชื›ื•ื ื” ื–ื•, ื ื™ืชืŸ ืœื—ืœืง ืžืขืจืš ื ืชื•ื ื™ื ืขื ืชืฆืคื™ื•ืช, ื›ืš ืฉื‘ื—ืœืง ืื—ื“ ื™ืฉ ื ืชื•ื ื™ื ืขื ืขืจืš ืื—ื“ ืฉืœ ื”ืžื“ื“ ืฉืžื•ืกื‘ืจ, ื•ื‘ื—ืœืง ื”ืฉื ื™ ืขื ืขืจืš ืื—ืจ ืฉืœ ื”ืžื“ื“.
ื•ื‘ื›ืŸ, ื›ืœื•ืžืจ: ื‘ืื™ื–ื• ืžื™ื“ื” ื–ื• ืชื›ื•ื ื” ืžืกื•ื•ื’ืช (ืจืื™ืชื™ ืืช ื”ื”ืกื‘ืจ ื”ื‘ืจื•ืจ ื‘ื™ื•ืชืจ ื‘ืฉืคื” ื”ืจื•ืกื™ืช ื‘-RandomForest ื›ืืŸ).

ืงื•ื“ R-ืขื•ื‘ื“-ืื™ื›ืจ ืœืขื™ื‘ื•ื“ ืžืขืจืš ื ืชื•ื ื™ื ืขื ืชื•ืฆืื•ืช ืฉืœ ืžื‘ื—ื ื™ ืขื•ืžืก:

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, ืœื ื”ื ืงื•ื“ื” ื—ืฉื•ื‘ื”.

ื›ืชื•ืฆืื” ืžื›ืš, ื‘ืžืงืจื” ื–ื”, ืžืชืงื‘ืœืช ื”ืชื•ืฆืื” ื”ื‘ืื” ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ืžื™ื“ืช ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ื”ืชื›ื•ื ื•ืช:

ืฉื™ื˜ืช ื”-poke ื”ืžื“ืขื™ืช, ืื• ื›ื™ืฆื“ ืœื‘ื—ื•ืจ ืชืฆื•ืจืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืžื“ื“ื™ื ื•ืืœื’ื•ืจื™ืชื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”

ื ื•. ืœืคื™ื›ืš, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืชื—ื™ืœ ื‘ื”ืฉืชืงืคื•ืช ื’ืœื•ื‘ืœื™ืช:

  1. ืžืกืชื‘ืจ ืฉื”ืžืฉืžืขื•ืชื™ ื‘ื™ื•ืชืจ, ื‘ืชื ืื™ ื‘ื“ื™ืงื” ืืœื•, ื”ื™ื” ื”ืคืจืžื˜ืจ commit_wait
    ืžื‘ื—ื™ื ื” ื˜ื›ื ื™ืช, ื”ื•ื ืžืฆื™ื™ืŸ ืืช ืžืฆื‘ ื”ื‘ื™ืฆื•ืข ืฉืœ ืคืขื•ืœืช ื”-io ืฉืœ ื›ืชื™ื‘ืช ื ืชื•ื ื™ ื‘ื™ืฆื•ืข ืžื—ื“ืฉ ืžืžืื’ืจ ื”ื™ื•ืžืŸ ืฉืœ subdb ืœืงื‘ื•ืฆืช ื”ื™ื•ืžืŸ ื”ื ื•ื›ื—ื™ืช: ืกื™ื ื›ืจื•ื ื™ ืื• ืืกื™ื ื›ืจื•ื ื™.
    ืขืจืš nowait ืžื” ืฉืžื‘ื™ื ืœืขืœื™ื™ื” ื›ืžืขื˜ ืื ื›ื™ืช ื•ืžืจื•ื‘ื” ื‘ืขืจืš ืฉืœ ื”ืžื“ื“ tps: ื–ื”ื• ื”ื›ืœืœืช ืžืฆื‘ ื”-io ื”ืืกื™ื ื›ืจื•ื ื™ ื‘ืงื‘ื•ืฆื•ืช redo.
    ืฉืืœื” ื ืคืจื“ืช ื”ื™ื ื”ืื ื›ื“ืื™ ืœืขืฉื•ืช ื–ืืช ื‘ืžืื’ืจ ืžื–ื•ืŸ ืื• ืœื. ื›ืืŸ ืื ื™ ืžื’ื‘ื™ืœ ืืช ืขืฆืžื™ ืจืง ืœื”ืฆื”ื™ืจ: ื–ื” ื’ื•ืจื ืžืฉืžืขื•ืชื™.
  2. ื–ื” ื”ื’ื™ื•ื ื™ ืฉื’ื•ื“ืœ ืžืื’ืจ ื”ืœื•ื’ ืฉืœ ื”-subd: ืžืชื‘ืจืจ ื›ื’ื•ืจื ืžืฉืžืขื•ืชื™.
    ื›ื›ืœ ืฉื’ื•ื“ืœ ืžืื’ืจ ื”ื™ื•ืžืŸ ืงื˜ืŸ ื™ื•ืชืจ, ืงื™ื‘ื•ืœืช ื”ื—ืฆื™ืฆื” ืฉืœื• ืงื˜ื ื” ื™ื•ืชืจ, ื›ืš ื”ื•ื ืขื•ืœื” ืขืœ ื’ื“ื•ืชื™ื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื•ืชืจ ื•/ืื• ื—ื•ืกืจ ื”ื™ื›ื•ืœืช ืœื”ืงืฆื•ืช ื‘ื• ืฉื˜ื— ืคื ื•ื™ ืœื—ืœืง ืžื ืชื•ื ื™ ื—ื™ื–ื•ืจ ื—ื“ืฉื™ื.
    ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื: ืขื™ื›ื•ื‘ื™ื ื”ืงืฉื•ืจื™ื ืœื”ืงืฆืืช ืฉื˜ื— ื‘ืžืื’ืจ ื”ื™ื•ืžืŸ ื•/ืื• ื”ืฉืœื›ืช ื ืชื•ื ื™ ื‘ื™ืฆื•ืข ืžื—ื“ืฉ ืžืžื ื• ืœืงื‘ื•ืฆื•ืช ื‘ื™ืฆื•ืข ืžื—ื“ืฉ.
    ืขื™ื›ื•ื‘ื™ื ืืœื•, ื›ืžื•ื‘ืŸ, ืฆืจื™ื›ื™ื ื•ืžืฉืคื™ืขื™ื ืขืœ ื”ืชืคื•ืงื” ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืœืขืกืงืื•ืช.
  3. ืคืจืžื˜ืจ db_block_checksum: ื•ื‘ื›ืŸ, ื’ื, ื‘ืื•ืคืŸ ื›ืœืœื™ ื–ื” ื‘ืจื•ืจ - ืขื™ื‘ื•ื“ ืขืกืงืื•ืช ืžื•ื‘ื™ืœ ืœื”ื™ื•ื•ืฆืจื•ืช ืฉืœ ื‘ืœื•ืงื™ื ื“ืจื˜ื™ื™ื ื‘ืžื˜ืžื•ืŸ ื”ืžืื’ืจ ืฉืœ ืชืช ืžืกื“ ื”ื ืชื•ื ื™ื.
    ืืฉืจ, ื›ืืฉืจ ื‘ื“ื™ืงืช ืกื›ืžื™ ื‘ื“ื™ืงื” ืฉืœ ื‘ืœื•ืงื™ื ืฉืœ ื ืชื•ื ื™ื ืžื•ืคืขืœืช, ืขืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืœืขื‘ื“ - ื—ืฉื‘ ืืช ืกื›ื•ืžื™ ื”ื‘ื“ื™ืงื” ื”ืœืœื• ืžื’ื•ืฃ ื”-Datablock, ื‘ื“ื•ืง ืื•ืชื ืขื ืžื” ืฉื›ืชื•ื‘ ื‘-datablock header: matches/ืœื ืชื•ืื.
    ืขื‘ื•ื“ื” ื›ื–ื•, ืฉื•ื‘, ืื™ื ื” ื™ื›ื•ืœื” ืฉืœื ืœืขื›ื‘ ืืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื, ื•ื‘ื”ืชืื, ื”ืคืจืžื˜ืจ ื•ื”ืžื ื’ื ื•ืŸ ืฉืงื•ื‘ืข ืคืจืžื˜ืจ ื–ื” ืžืชื’ืœื™ื ื›ืžืฉืžืขื•ืชื™ื™ื.
    ื–ื• ื”ืกื™ื‘ื” ืฉื”ืกืคืง ืžืฆื™ืข ื‘ืชื™ืขื•ื“ ืฉืœ ืคืจืžื˜ืจ ื–ื” ืขืจื›ื™ื ืฉื•ื ื™ื ื•ืžืฆื™ื™ืŸ ื›ื™ ื›ืŸ, ืชื”ื™ื” ื”ืฉืคืขื”, ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ืขืจื›ื™ื ืฉื•ื ื™ื, ืืคื™ืœื• "ื›ื‘ื•ื™" ื•ื”ืฉืคืขื•ืช ืฉื•ื ื•ืช.

ื•ื‘ื›ืŸ, ืžืกืงื ื” ื’ืœื•ื‘ืœื™ืช.

ื”ื’ื™ืฉื”, ื‘ืื•ืคืŸ ื›ืœืœื™, ืžืชื‘ืจืจืช ื›ืขื•ื‘ื“ืช ืœืžื“ื™.

ื”ื•ื ื“ื™ ืžืจืฉื” ืœืขืฆืžื•, ื‘ืฉืœื‘ื™ื ื”ืจืืฉื•ื ื™ื ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ืฉืœ ืžืขืจื›ืช ืฉื™ืจื•ืช ืžืกื•ื™ืžืช, ื›ื“ื™ ืœื‘ื—ื•ืจ ืืช ื”ืชืฆื•ืจื” ื”ืื•ืคื˜ื™ืžืœื™ืช ืฉืœื” (ืžืขืจื›ืช) ืœืขื•ืžืก, ืœื ืœื”ืชืขืžืง ื™ื•ืชืจ ืžื“ื™ ื‘ืคืจื˜ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ื”ืงืžืช ื”ืžืขืจื›ืช ืœืขื•ืžืก.

ืื‘ืœ ื–ื” ืœื ืฉื•ืœืœ ืืช ื–ื” ืœื—ืœื•ื˜ื™ืŸ - ืœืคื—ื•ืช ื‘ืจืžืช ื”ื”ื‘ื ื”: ื”ืžืขืจื›ืช ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ื™ื“ื•ืขื” ืขืœ "ื›ืคืชื•ืจื™ ื”ื”ืชืืžื”" ื•ืขืœ ื˜ื•ื•ื—ื™ ื”ืกื™ื‘ื•ื‘ ื”ืžื•ืชืจื™ื ืฉืœ ื”ื›ืคืชื•ืจื™ื ื”ืœืœื•.

ืœืื—ืจ ืžื›ืŸ, ื”ื’ื™ืฉื” ื™ื›ื•ืœื” ืœืžืฆื•ื ื‘ืžื”ื™ืจื•ืช ื™ื—ืกื™ืช ืืช ืชืฆื•ืจืช ื”ืžืขืจื›ืช ื”ืื•ืคื˜ื™ืžืœื™ืช.
ื•ื‘ื”ืชื‘ืกืก ืขืœ ืชื•ืฆืื•ืช ื”ื‘ื“ื™ืงื•ืช, ื ื™ืชืŸ ืœืงื‘ืœ ืžื™ื“ืข ืขืœ ืื•ืคื™ ื”ืงืฉืจ ื‘ื™ืŸ ืžื“ื“ื™ ื‘ื™ืฆื•ืขื™ ื”ืžืขืจื›ืช ืœื‘ื™ืŸ ืขืจื›ื™ ืคืจืžื˜ืจื™ ื”ื’ื“ืจื•ืช ื”ืžืขืจื›ืช.

ืžื” ืฉื›ืžื•ื‘ืŸ ืืžื•ืจ ืœืชืจื•ื ืœื”ื•ืคืขืชื” ืฉืœ ื”ื”ื‘ื ื” ื”ืžืื•ื“ ืขืžื•ืงื” ื”ื–ื• ืฉืœ ื”ืžืขืจื›ืช, ืคืขื•ืœืชื”, ืœืคื—ื•ืช ืชื—ืช ืขื•ืžืก ื ืชื•ืŸ.

ื‘ืคื•ืขืœ ืžื“ื•ื‘ืจ ื‘ื”ื—ืœืคื” ืฉืœ ืขืœื•ื™ื•ืช ื”ื‘ื ืช ื”ืžืขืจื›ืช ื”ืžื•ืชืืžืช ืœืขืœื•ื™ื•ืช ื”ื›ื ืช ื‘ื“ื™ืงื” ื›ื–ื• ืฉืœ ื”ืžืขืจื›ืช.

ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ื‘ื ืคืจื“: ื‘ื’ื™ืฉื” ื–ื• ื™ืฉื ื” ื—ืฉื™ื‘ื•ืช ืงืจื™ื˜ื™ืช ืœืžื™ื“ืช ื”ื”ืชืืžื” ืฉืœ ื‘ื“ื™ืงืช ื”ืžืขืจื›ืช ืœืชื ืื™ ื”ื”ืคืขืœื” ืฉื™ื”ื™ื• ืœื” ื‘ืคืขื™ืœื•ืช ืžืกื—ืจื™ืช.

ืชื•ื“ื” ืขืœ ืชืฉื•ืžืช ื”ืœื‘ ื•ื”ื–ืžืŸ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”