เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบชเบฐเบšเบฒเบเบ”เบต

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบ - เบซเบกเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบ„เบดเบ”, เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.
เป‚เบ”เบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ: เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒ, เปเบ™เปˆเบ™เบญเบ™ - เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ•เบดเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบฒเบ‡เป†, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ DBMS.
เปเบฅเบฐ: เปเบกเปˆเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบ‚เบปเบฒเบฎเบนเป‰, เบžเบงเบเป€เบ‚เบปเบฒเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡ (UPD.: เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบžเบงเบเป€เบ‚เบปเบฒเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ: ottertune )
เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡: offhand เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป€เบซเบฑเบ™เบเบฒเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบซเบผเบทเบเบฒเบ™เป€เบœเบตเบเปเบœเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เปƒเบ™เบšเบฑเบ™เบ”เบฒเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™เป„เบญเบ—เบต, DBA.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบ–เบดเบ‡เบˆเบธเบ”.

เบ‚เปเปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบงเบฝเบเบ‡เบฒเบ™: เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”.

เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰: เบกเบฑเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡, เบงเบดเบ—เบตเบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰, เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ™เบตเป‰.

เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ: เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ (เบซเบผเบทเบเบฑเบš) เบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ™เบตเป‰.

"เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ" - เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเบฐเบเบฝเบก (เบซเบผเบทเป€เบญเบปเบฒเบกเบฑเบ™เบกเบฒเบˆเบฒเบเบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เบซเบ™เบถเปˆเบ‡) เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡, เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเบฑเบ‡เป€เบ„เบฒเบฐเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเบ”เป‰เบงเบเบเบฒเบ™เป‚เบซเบผเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบžเบฝเบ‡เบžเปเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบœเบฐเบฅเบดเบ”, เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”.

เปเบฅเป‰เบง, เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบŠเบธเบ”เบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบฅเบฐเบšเบปเบšเบ™เบตเป‰เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™.

เปเบฅเบฐเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡ - เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบขเปˆเบฒเบ‡เบžเบฝเบ‡เบžเปเบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เปƒเบ™เป€เบงเบ—เบตเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบ”เบต. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบเบทเบญเบšเบ—เบธเบเบเปเบฅเบฐเบ™เบต.

เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป„เบ”เป‰เบขเบนเปˆเบ™เบตเป‰?

เบ”เบต, เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เปƒเบˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ™เบตเป‰. เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เปเบกเปˆเบ™เบซเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เบฑเบš. เปเบฅเบฐ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ descent เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™, เป€เบฅเบทเบญเบเบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฅเบฐเบšเบปเบšเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.

เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบŠเบธเบ”เบ„เปˆเบฒเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เบกเบฑเบ™.

เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป‚เบซเบผเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฑเบšเบกเบฑเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบซเบผเบฒเบ - เบ›เบฐเป‚เบซเบเบ”เบ™เบตเป‰, เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบเบฒเบ™เป‚เบซเบผเบ”.
เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบกเบนเบ™เบ„เปˆเบฒ - เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เบซเบผเบท metric เบ‚เบญเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเบชเบญเบ‡เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเบซเบฅเบธเบšเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™เบซเบผเบฒเบ.

เบ”เบต, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™: เบ–เป‰เบฒเบกเบตเบซเบผเบฒเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™, เบ–เป‰เบฒเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบกเปˆเบ™เปƒเบซเบเปˆ, เบ–เป‰เบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเปเบฒเป€เบฅเบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™: เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเป„เบ”เป‰. เป€เบงโ€‹เบฅเบฒโ€‹เบ”เบปเบ™โ€‹เบ™เบฒเบ™.

เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเปƒเบˆ เปเบฅเบฐเบˆเบทเปˆเป„เบ”เป‰.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเปƒเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบกเบต vector, เป€เบ›เบฑเบ™เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบšเบฒเบ‡เบ„เปˆเบฒ.

เปเบ•เปˆเบฅเบฐ vector เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†เบกเบตเบ„เบงเบฒเบกเป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™ (เปƒเบ™เบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบ vector เบ™เบตเป‰), เป€เบ—เบปเปˆเบฒเบเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ metric - เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เป‚เบซเบผเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.

Ie

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเปเบ”เบ‡ vector เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเป€เบ›เบฑเบ™ เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.เบšเปˆเบญเบ™เบ—เบตเปˆ เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.; เบขเบนเปˆเปƒเบช เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. โ€” เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹, เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบกเบตโ€‹.

เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ metric เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰ เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เปƒเบซเป‰เปเบฒเบเป€เบ–เบดเบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™
เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ: เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เปเบฅเป‰เบง, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบเปเปˆเบกเบฒเบ—เบฑเบ™เบ—เบต, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ: เป€เบเบทเบญเบšเบฅเบทเบกเบˆเบฒเบเบกเบทเป‰เบ™เบฑเบเบฎเบฝเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเบญเบเบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบนเบ‡เบชเบธเบ”.

เบ•เบปเบเบฅเบปเบ‡, เปเบ•เปˆเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™: เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰.

  1. เปƒเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบ - เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบซเบฑเบ”เบซเบ™เป‰เบญเบเบฅเบปเบ‡เบ”เป‰เบงเบเบกเบท.
  2. เปเบฅเบฐเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, i.e. เบžเบปเบšเป€เบซเบฑเบ™ extremum (เบ–เป‰เบฒเบกเบตเบซเบ™เบถเปˆเบ‡), เบ”เบต, เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเป„เบงเบเปˆเบงเบฒเบเบฒเบ™เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™ descent.

เบˆเบธเบ”เบ—เปเบฒเบญเบดเบ”เปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบšเบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆ algorithms เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบง, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบฎเบนเบšเปเบšเบš, เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”.
เบ”เบต, เบ‚เป‰เบญเบเบฎเบนเป‰ python ะธ cran-r

เบˆเบธเบ”เบ—เบตเบชเบญเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบš algorithms เบ•เบปเบงเป€เบญเบ‡, เบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡, เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ” - เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบซเบผเบทเป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ algorithm เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.

เบซเบผเบทเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

เบซเบผเบฒเบเบ‚เบทเป‰เบ™เบเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ, เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป„เบง, เบ”เบต, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบงเบดเบ—เบต gradient descent algorithms เปเบฅเบฐเป€เบฅเบทเบญเบเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™.

เบซเบผเบท, เบ–เป‰เบฒเป€เบงเบฅเบฒเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ stochastic, เป€เบŠเบฑเปˆเบ™: เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฒเบ‡เบžเบฑเบ™เบ—เบธเบเปเบฒ.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰, เบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบš, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฒเบ‡เบžเบฑเบ™เบ—เบธเบเปเบฒ, เบ•เปเปˆเป„เบ›, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบงเบปเป‰เบฒ: เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡.

เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš:

  1. เปƒเบซเป‰โ€‹เบกเบตโ€‹, เป€เบ›เบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹: oracle xe 18c
  2. เปƒเบซเป‰เบกเบฑเบ™เบฎเบฑเบšเปƒเบŠเป‰เบเบดเบ”เบˆเบฐเบเปเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ: เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบญเบ, เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ / เบงเบดเบ™เบฒเบ—เบต.
  3. เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบชเบฒเบกเบฒเบ”เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.
    เปƒเบซเป‰เบ•เบปเบเบฅเบปเบ‡เบเบฑเบ™เบงเปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡.
    เปƒเบ™เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™ undo เบซเบผเบฒเบเบเปˆเบงเบฒ redo เปเบฅเบฐเบšเปเปˆเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เปเบ–เบงเปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบ™เบถเปˆเบ‡เปเบ–เบงเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ, เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ”เบฑเบ”เบชเบฐเบ™เบตเบซเบ™เป‰เบญเบเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ™เบตเป‰.

เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰: เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบฅเบฐเบเปเบฒเบˆเบฐ, เบ”เป‰เบงเบเบเบฒเบ™เบˆเบญเบ‡, เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป‚เบ”เบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ redox.

เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ” - เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบปเบ™เบ—เบฐเบ™เบฒเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ subdb.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบฅเบฑเบญเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡ SQL sessions, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐ / เบซเบผเบทเบฎเบนเบšเปเบšเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡.

เป€เบŠเบดเปˆเบ‡, เปเบ™เปˆเบ™เบญเบ™, เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบชเบปเป‰เบฒเปƒเบˆเบ•เปเปˆ TPS metric เปเบฅเบฐเบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฑเบ”เปƒเบˆ exogenous, เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš subdatabase: เบ”เบต, เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ•เบปเบงเปเบšเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบกเบฑเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบšเปเบฅเบดเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบเบปเบเป€เบงเบฑเป‰เบ™เบ›เบฑเบ”เป„เบˆเบ™เบตเป‰, เปเบฅเบฐเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบŠเบตเป‰เปเบˆเบ‡เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™.

  1. เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ, เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบก, 100% เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ SQL เบ—เบตเปˆเบชเบปเปˆเบ‡เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ DML.
    เปƒเบซเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบญเบเบ„เบทเบเบฑเบ™เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš.
    เบ„เบท: เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบก skl, เบ‚เปเป‰เบกเบนเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบงเบดเบ—เบตเบเบฒเบ™ skl sessions เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.
  2. Subd เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ FORCE LOGGING, ARCHIVELOG mods. เป‚เปเบ” Flashback-เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบ›เบดเบ”เป„เบงเป‰, เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเปˆเบญเบ.
  3. เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบ„เบทเบ™เปƒเปเปˆ: เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปƒเบ™ โ€œเปเบœเปˆเบ™โ€ เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ;
    เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบฒเบ‡เบเบฒเบเบฐเบžเบฒเบšเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™: เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปƒเบ™ "disk" เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ:

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡

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. เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเป‰เบงโ€”เบกเบตเบชเปˆเบงเบ™เป€เบเบตเบ™เป€เบกเบทเปˆเบญเปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™
เปƒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ•เบฑเบ™โ€‹! เปเบ•เปˆ SLOB - เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบกเบฑเบ™ - เบกเบตเบžเบนเบกเบ•เป‰เบฒเบ™เบ—เบฒเบ™เบ•เปเปˆเบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ™เบตเป‰: เบเบปเบ‡เบเบฑเบ™, เบกเบฑเบ™เปเบกเปˆเบ™.
เบกเบฑเบ™เบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบก cl, เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™ -t เป€เบ›เบตเบ”โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹ runit.sh เบˆเบฒเบ SLOB
เป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ DML เบ–เบทเบเบ„เบงเบšเบ„เบธเบก, เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ subd, เปเบ•เปˆเบฅเบฐเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ‚เปเป‰เบ„เบงเบฒเบก, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต UPDATE_PCT
เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบชเบฐเบ”เบงเบเบซเบผเบฒเบ: SLOB เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เบเปˆเบญเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบเบฒเบ™เป‚เบซเบผเบ” - เบเบฐเบเบฝเบก statspack, เบซเบผเบท awr-snapshots (เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบžเบทเปˆเบญเบเบฐเบเบฝเบก).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒ SLOB เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš SQL sessions เบ—เบตเปˆเบกเบตเป„เบฅเบเบฐเป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 30 เบงเบดเบ™เบฒเบ—เบต.
เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบ—เปเบฒเบญเบดเบ”เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบชเบฐเบšเบฑเบšเปเบฎเบ‡เบ‡เบฒเบ™ - peasant เบ‚เบญเบ‡ loader, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™.

เปƒเบซเป‰เบ‚เป‰เบญเบเบŠเบตเป‰เปเบˆเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆ loader เป€เบฎเบฑเบ”เปเบฅเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบกเบฑเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™, เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™.
เป‚เบ”เบโ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เปเบฅเป‰เบง loader เป€เบšเบดเปˆเบ‡โ€‹เบ„เบทโ€‹เบ™เบตเป‰โ€‹:

เบฅเบฐเบซเบฑเบ”เบ„เบปเบ™เบ‡เบฒเบ™

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

เบเบฑเบšเบ„เบทเบ™เป„เบ›เป€เบฎเบฑเบ”เบงเบฝเบเบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡.
เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ, เบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†เบ—เบตเปˆเป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™, เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ‚เบญเบ‡ subdatabase เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡:

  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;

เบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Oracle เปเบ™เปˆเบ™เบญเบ™เบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เปเบฅเป‰เบงเบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบˆเบฒเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เป‚เบ”เบ. เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เปเบ•เปˆ.

เบˆเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเบŠเบตเป‰เปเบˆเบ‡เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป„เบง.

เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบšเบดเปˆเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™, เป‚เบ”เบเบœเปˆเบฒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เป„เบ”เป‰, เบžเบฝเบ‡เปเบ•เปˆเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เปƒเบ”.
เปเบฅเบฐเบเบฑเบ‡: เบฅเบฐเบซเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเบฐเบšเบปเบš custom เบ‚เบญเบ‡ algorithm เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเป€เบฅเบทเบญเบ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”.
เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบเปˆเบฝเบงเบเบฑเบš cran-r, i.e.: เบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”เบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบเบณเบ™เบปเบ”เป€เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบชเบฐเบ„เบฃเบดเบš R.

เบงเบฝเบเบ‡เบฒเบ™เบ•เบปเบงเบˆเบดเบ‡, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ, เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเป‚เบ”เบเบกเบนเบ™เบ„เปˆเบฒ metric, vectors เบฅเบฑเบ”เบฅเบฐเบšเบปเบš: เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบธเบ” GA (เป€เบญเบเบฐเบชเบฒเบ™)
เบŠเบธเบ”, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบซเบผเบฒเบ, เปƒเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบเบ—เบตเปˆเบกเบฑเบ™เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒ vectors (chromosomes, เบ–เป‰เบฒเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบŠเบธเบ”) เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบŠเปˆเบญเบเปเบ™เปˆเบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เป€เบชเบ”เบชเปˆเบงเบ™.

เปเบฅเบฐ vector เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบˆเบฒเบเบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™: เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ 14 เบ›เบฐเบฅเบดเบกเบฒเบ™ - integers เปเบฅเบฐ string values โ€‹โ€‹.

เบšเบฑเบ™เบซเบฒ, เปเบ™เปˆเบ™เบญเบ™, เป„เบ”เป‰เบ–เบทเบเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเป€เบฅเบเบชเบฐเป€เบžเบฒเบฐเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบซเป‰เบเบฑเบšเบ„เปˆเบฒเบชเบฐเบ•เบฃเบดเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ 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 เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ„เบปเป‰เบ™เบซเบฒเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš vectors (เบซเบผเบท vectors) เป€เบŠเบดเปˆเบ‡เบกเบนเบ™เบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš.

routine เบเปˆเบญเบเบ‚เบญเบ‡ ga เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ”.

เปเบฅเป‰เบง, เบกเบฑเบ™ turns เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡, เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆ vector เป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ subd, เป„เบ”เป‰เบฎเบฑเบš metric เบˆเบฒเบ subd เป„เบ”เป‰.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™: เบˆเปเบฒเบ™เบงเบ™เป€เบ—เบปเปˆเบฒเปƒเบ”, เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ subd เปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเปƒเบซเป‰เบขเบนเปˆเปƒเบ™ subd: subd เบ”เปเบฒเป€เบ™เบตเบ™เบ—เบธเบฅเบฐเบเปเบฒเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เป€เบœเบตเบ, เบซเบผเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ•เป‰เบญเบ‡เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš:

  1. เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ vector เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบ - เบเบฒเบ™เปเบ›เบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปˆเบญเบเบ‚เปเป‰เบกเบนเบ™.
  2. เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบˆเปเบฒเบ™เบงเบ™เบเบธเปˆเบก redo เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”.
    เบเบธเปˆเบกเบงเบฒเบฅเบฐเบชเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™ subd, เปƒเบ™เบšเบฒเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™เปเบฅเบฐเบšเบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”, เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบšเปเบฅเบดเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ - d.b. เบฅเบถเบšเปเบฅเป‰เบง.
  3. เบ–เป‰เบฒเบˆเบธเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”: เบเบฒเบ™เบฅเบฐเบšเบธเบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ (เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡: เบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง)
  4. เบ–เป‰เบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”: เบเบฒเบ™เบขเบธเบ” subd, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ subd เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เปƒเบซเบกเปˆเบกเบตเบœเบปเบ™. (เบญเบตเบโ€‹เป€เบ—เบทเปˆเบญโ€‹เบซเบ™เบถเปˆเบ‡โ€‹: เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹)
  5. เบ–เป‰เบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”: เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”. เป„เบ”เป‰เบฎเบฑเบš metrics เบˆเบฒเบ subd.
  6. เบเบฑเบšเบ„เบทเบ™ subd เบเบฑเบšเบชเบฐเบžเบฒเบšเป€เบ”เบตเบกเบ‚เบญเบ‡เบกเบฑเบ™, i.e. เบฅเบถเบšเบเบธเปˆเบกเบšเบฑเบ™เบ—เบถเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบญเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเป‰เป€เบฎเบฑเบ”เบงเบฝเบ.

เบฅเบฐเบซเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบŸเบดเบ”เป€เบ™เบช

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 เบ›เบฐเบกเบงเบ™เบœเบปเบ™ vectors, เบซเบผเบท, เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, chromosomes.
เปƒเบ™เบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ” เบชเบณ เบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเป‚เบ„เป‚เบกเป‚เบŠเบกเบ—เบตเปˆเบกเบตเบžเบฑเบ™เบ—เบธ เบเบณ เบ—เบตเปˆ เปœเป‰เบฒ เบ—เบตเปˆเบเบฒเบ™เบญเบญเบ เบเบณ เบฅเบฑเบ‡เบเบฒเบเบชเป‰เบฒเบ‡เบ„เบธเบ™เบ„เปˆเบฒเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡.

เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบŠเบธเบ”เป‚เบ„เป‚เบกเป‚เบŠเบกเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเปƒเบŠเป‰ vector เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ„เบปเป‰เบ™เบซเบฒ N-dimensional.

เบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบ, เบฅเบฐเบญเบฝเบ” เบ„เบณ เบญเบฐเบ—เบดเบšเบฒเบ, เบ”เป‰เบงเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” R, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฒเบ‡เบžเบฑเบ™เบ—เบธเบเปเบฒ.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบชเบญเบ‡เบˆเบธเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เป‚เบ—เป€เบชเบตเบกเบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™ evaluate, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ subd, เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ cran-r เบซเบ™เป‰เบฒเบ—เบตเปˆ system2

เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบ—เบตเปˆ: เบšเบฒเบ‡ bash script เบซเบผเบทเบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเป€เบญเบตเป‰เบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡:

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 เบŸเบฑเบ‡เบŠเบฑเบ™, เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เบ„เปˆเบฒ metric เบชเบฐเป€เบžเบฒเบฐเปเบฅเบฐ vector tuning เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ:

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

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบˆเบฒเบ array เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ”เบ‚เบญเบ‡ vector tuning เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒ metric.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™: เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™?

เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒโ€‹เบŸโ€‹, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เปƒเบ™โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบš metric เบ•เบฑเป‰เบ‡โ€‹เบŠเบฑเบ™โ€‹เบ‚เบถเป‰เบ™โ€‹, เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบšเบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ metric:
เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
เบ—เบตเปˆเบ™เบตเป‰, เปƒเบ™ screenshot เบเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบŠเบตเป‰เปเบˆเบ‡: เบ„เปˆเบฒเบ‚เบญเบ‡ vector tuning เปเบกเปˆเบ™เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš, เบšเปเปˆเปเบกเปˆเบ™เปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ / เป„เบฅเบเบฐเบ‚เบญเบ‡เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™. เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

เบ”เบต. เบกเบฑเบ™เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ, ~ 8 เบžเบฑเบ™ tps: เบ„เปเบฒเบ–เบฒเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.
เบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡, เบ•เบปเบงเป€เบฅเบเบ™เบตเป‰เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ”เป‰เบฒเบ™, เบงเบดเบ—เบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰.

เบ™เบฐเป‚เบเบšเบฒเบเบ”เป‰เบฒเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบ”เบต.
เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ›เบฑเบ”เป„เบˆเบ—เบตเปˆเบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ•เปเปˆเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ metric, ga-algorithm, เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™ vectors chromosome: เบเบงเบกเป€เบญเบปเบฒ.
เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบเบ”เป‰เบฒเบ™เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบžเปเบชเบปเบกเบ„เบงเบ™เบ‚เบญเบ‡เบ„เปˆเบฒเป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡, เบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ›เบฑเบ”เปƒเบˆเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ, เบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ attribute-importance เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบ” (เบ”เบต, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ vector tuning) เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเบ„เปˆเบฒ metric.
เปเบฅเบฐเบˆเบฒเบเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰: เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ›เบฑเบ”เปƒเบˆเปƒเบ”เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ attribute-importance เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบกเบฑเบ algorithm randomForest เบŠเบธเบ” R เบ‚เบญเบ‡เบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™ (เป€เบญเบเบฐเบชเบฒเบ™)
randomForest, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบฅเบฒเบงเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบฅเบฒเบงเปƒเบ™เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบเปเปˆเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ.

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹, เบ•เบปเบงโ€‹เปเบ›โ€‹เบ•เบญเบšโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบงเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบˆเบฒเบโ€‹เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹: tps;
เปเบฅเบฐเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ vector tuning.

เบชเบฐเบ™เบฑเป‰เบ™เบขเบนเปˆเบ™เบตเป‰ randomForest เบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบกเบตเบชเบญเบ‡เบ•เบปเบงเป€เบฅเบ: %IncMSE โ€” เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆ / เบšเปเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ™เบตเป‰โ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบžเบฒเบš MSE เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เปเบšเบšโ€‹เบ™เบตเป‰ (Mean Squared Error);

เปเบฅเบฐ IncNodePurity เปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบต, เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰, เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบชเบฒเบกเบฒเบ”เปเบšเปˆเบ‡เบญเบญเบเป„เบ”เป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ metric เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบ, เปเบฅเบฐเบญเบตเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบกเบตเบ‚เปเป‰เบกเบนเบ™. เบ„เปˆเบฒเบญเบทเปˆเบ™เบ‚เบญเบ‡ metric.
เปเบฅเป‰เบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™: เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เปƒเบ™เบฅเบฐเบ”เบฑเบšเปƒเบ” (เบ‚เป‰เบญเบเป„เบ”เป‰เป€เบซเบฑเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ—เบตเปˆเบชเบธเบ”เบขเบนเปˆเปƒเบ™ RandomForest. เบ—เบตเปˆเบ™เบตเป‰).

Worker-peasant R-code เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”:

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

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบ hyperparameters เบ‚เบญเบ‡ algorithm เป‚เบ”เบเบเบปเบ‡เบ”เป‰เบงเบเบกเบทเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐ, เบชเบธเบกเปƒเบชเปˆเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบงเปเบšเบš, เป€เบฅเบทเบญเบเบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบ•เบฒเบกเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเปˆเบฝเบงเบเบฑเบšเบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.
เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰ (เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš).

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบŠเบธเบ” R caret, เบšเปเปˆเปเบกเปˆเบ™เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบžเบทเปˆเบญเบ›เบฐเป€เบกเบตเบ™เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ:

เบงเบดเบ—เบตเบเบฒเบ™ poke เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ benchmarks เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบ”เบต. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบปเปˆเบงเป‚เบฅเบ:

  1. เบกเบฑเบ™ turns เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹, เบžเบฒเบโ€‹เปƒเบ•เป‰โ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹, เปเบกเปˆเบ™โ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹ commit_wait
    เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เป€เบ—เบเบ™เบดเบ, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ io เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™ redo เบˆเบฒเบ subdb log buffer เป„เบ›เบซเบฒเบเบธเปˆเบกเบšเบฑเบ™เบ—เบถเบเบ›เบฐเบˆเบธเบšเบฑเบ™: synchronous เบซเบผเบท asynchronous.
    เบกเบนเบ™เบ„เปˆเบฒ nowait เป€เบŠเบดเปˆเบ‡เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เป€เบเบทเบญเบšเปเบ™เบงเบ•เบฑเป‰เบ‡, เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบซเบผเบฒเบเปƒเบ™เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ tps metric: เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเป‚เบซเบกเบ” io asynchronous เปƒเบ™เบเบธเปˆเบก redo.
    เบ„เปเบฒเบ–เบฒเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบตเป‰เบซเบผเบทเบšเปเปˆเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบฒเบซเบฒเบ™. เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเปเบฒเบเบฑเบ”เบ•เบปเบงเป€เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเป€เบงเบปเป‰เบฒเบงเปˆเบฒ: เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฑเบ”เปƒเบˆเบชเปเบฒเบ„เบฑเบ™.
  2. เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ log buffer เบ‚เบญเบ‡ subd: เบเบฒเบเป€เบ›เบฑเบ™เบ›เบฑเบ”เปƒเบˆเบชเปเบฒเบ„เบฑเบ™.
    เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบšเบฑเบŸเป€เบŸเบตเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ™เป‰เบญเบเบฅเบปเบ‡, เบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ” buffering เบ‚เบญเบ‡เบกเบฑเบ™เปœเป‰เบญเบเบฅเบปเบ‡, เบกเบฑเบ™เบกเบฑเบเบˆเบฐเบฅเบปเป‰เบ™ เปเบฅเบฐ/เบซเบผเบท เบเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เปƒเบ™เบกเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ redox เปƒเปเปˆ.
    เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ: เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™ log buffer เปเบฅเบฐ / เบซเบผเบท dumping redo เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ redo เบเบธเปˆเบก.
    เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เปเบ™เปˆเบ™เบญเบ™, เบ„เบงเบ™เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบœเปˆเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ.
  3. Parameter db_block_checksum: เบ”เบต, เบเบฑเบ‡, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบกเบฑเบ™เบˆเบฐเปเบˆเป‰เบ‡ - เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบฅเบฐเบเปเบฒเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ darty blocks เปƒเบ™ subdatabase เบ‚เบญเบ‡ buffer cache.
    เป€เบŠเบดเปˆเบ‡, เป€เบกเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡ checksums เบ‚เบญเบ‡ datablocks เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ - เบ„เบดเบ”เป„เบฅเปˆ checksums เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฒเบเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡ datablock, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ header datablock: เบเบปเบ‡เบเบฑเบ™ / เบšเปเปˆเบเบปเบ‡เบเบฑเบ™.
    เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบฅเบฐเบเบปเบ™เป„เบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.
    เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบœเบนเป‰เบ‚เบฒเบเบชเบฐเป€เบซเบ™เบต, เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰, เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™ (เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต) เปเบฅเบฐเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบกเปˆเบ™เปเบฅเป‰เบง, เบกเบฑเบ™เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš, เปเบ•เปˆ, เบ”เบต, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบ–เบดเบ‡ "เบ›เบดเบ”" เปเบฅเบฐ. เบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบ”เบต, เบเบฒเบ™เบชเบฐเบซเบฅเบธเบšเบ—เบปเปˆเบงเป‚เบฅเบ.

เบงเบดเบ—เบตเบเบฒเบ™, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, turns เบญเบญเบเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡.

เบฅเบฒเบงเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบ™เป€เบญเบ‡, เปƒเบ™เป„เบฅเบเบฐเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡, เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒ (เบฅเบฐเบšเบปเบš) เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ•เบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”, เบšเปเปˆ delve เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เป„เบ”เป‰.

เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบกเบฑเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ - เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆ: เบฅเบฐเบšเบปเบšเบˆเบฐเบ•เป‰เบญเบ‡เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš "เบฅเบนเบเบšเบดเบ”เบ›เบฑเบš" เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบซเบกเบธเบ™เบ‚เบญเบ‡เบฅเบนเบเบšเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป„เบ”เป‰เป„เบง.
เปเบฅเบฐเบญเบตเบ‡เปƒเบชเปˆเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเบงเบฑเบ”เปเบ—เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเปเบฅเบฐเบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เบฑเบšเบฅเบฐเบšเบปเบš.

เป€เบŠเบดเปˆเบ‡, เปเบ™เปˆเบ™เบญเบ™, เบ„เบงเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบเบตเบ”เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบขเปˆเบฒเบ‡เป€เบฅเบดเบเป€เบŠเบดเปˆเบ‡เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เป‚เบซเบผเบ”.

เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ: เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰, เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบžเบฝเบ‡เบžเปเบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบฅเบฐเบšเบปเบšเบเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบกเบตเปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ„เป‰เบฒเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ.

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปเบฅเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™