เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก PostgreSQL เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเบˆเบฒเบเบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.
เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡? เปเบกเปˆเบ™เปเบฅเป‰เบง, เป€เบžเบฒเบฐเบงเปˆเบฒ 4 เบ›เบตเบเปˆเบญเบ™, เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ‡เบฝเบšเป†, เบชเบฐเบซเบ‡เบปเบš, เบ„เบทเบเบฑเบšเป‚เบกเบ‡.
เป€เบ›เบฑเบ™ epigraph.

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบญเบตเบ‡เปƒเบชเปˆเป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡.
เบŠเบทเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™, เบšเบฑเบ‡เป€เบญเบตเบ™เปเบกเปˆเบ™ Random.

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

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

เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ.
เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบงเบฑเบ™เบ—เบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™ - 2018-09-10 18:02:48.
เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบเบฑเบ‡เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบกเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”:
เบฎเป‰เบญเบ‡เบ‚เปเบšเบฑเบ™เบซเบฒSELECT
p.โ€œPARAMETER_IDโ€ เป€เบ›เบฑเบ™ parameter_id,
pd."PD_NAME" AS pd_name,
pd."CUSTOMER_PARTNUMBER" AS customer_partnumber,
w. "LRM" AS LRM,
w. "เบซเบผเบฒเบ" เป€เบ›เบฑเบ™ lotid,
w.โ€œRTD_VALUEโ€ AS RTD_value,
w.โ€œLOWER_SPEC_LIMITโ€ AS lower_spec_limit,
w.โ€œUPPER_SPEC_LIMITโ€ AS upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS เปƒเบŠเป‰_เบŠเบทเปˆ,
s.โ€œSPENT_DATEโ€ AS เปƒเบŠเป‰เบˆเปˆเบฒเบเบงเบฑเบ™เบ—เบต,
เบชเบฐเบเบฑเบ”(เบ›เบตเบˆเบฒเบ "SPENT_DATE") AS เบ›เบต,
เบชเบฐเบเบฑเบ”(เป€เบ”เบทเบญเบ™เบˆเบฒเบ "SPENT_DATE") เป€เบ›เบฑเบ™เป€เบ”เบทเบญเบ™,
s."REPORT_NAME" AS report_name,
p."STPM_NAME" AS stpm_name,
p.โ€œCUSTOMERPARAM_NAMEโ€ AS customerparam_name
เบˆเบฒเบ wdata w,
เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒ s,
pmtr p,
spend_pd sp,
pd pd
WHERE s.โ€œSPENT_IDโ€ = w.โ€œSPENT_IDโ€
AND p"PARAMETER_ID" = w."PARAMETER_ID"
AND s.โ€œSPENT_IDโ€ = sp.โ€œSPENT_IDโ€
AND pd."PD_ID" = sp.PD_ID"
เปเบฅเบฐ s.โ€œSPENT_DATEโ€ >= '2018-07-01' เปเบฅเบฐ s.โ€œSPENT_DATEโ€ <= '2018-09-30'
เปเบฅเบฐ s.โ€œSPENT_DATEโ€ = (SELECT MAX(s2.โ€œSPENT_DATEโ€)
เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒ s2โ€‹,
wdata w2
WHERE s2.โ€œSPENT_IDโ€ = w2.โ€œSPENT_IDโ€
AND w2.โ€œLRMโ€ = w.โ€œLRMโ€);


เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰ - โ€œเบ—เบธเบเบขเปˆเบฒเบ‡เบšเปเปˆเบ”เบต. เบšเบญเบเบ‚เป‰เบญเบเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡.โ€
เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบทเปˆโ€‹เป„เบ”เป‰โ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบซเบเปเป‰โ€‹เบˆเบฒเบโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ‚เบญเบ‡ 3 เปเบฅเบฐโ€‹เป€เบ„เบดเปˆเบ‡โ€‹เบ™เบดเป‰เบงโ€‹เบ‚เบฑเบšโ€‹เบฅเบปเบ”โ€‹เป„เบ”เป‰โ€‹:

lamer เบกเบฒเบซเบฒเปเบฎเบเป€เบเบต.
- เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบ, เบšเบญเบเบ‚เป‰เบญเบเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบขเบนเปˆเปƒเบช.
- เปƒเบ™ DNA...

เปเบ•เปˆเปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. โ€œเบžเบงเบเป€เบ‚เบปเบฒเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบงเบเป€เบฎเบปเบฒ" (เบเบฑเบš). เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบดเบ”เบกเบฑเบ™เบญเบญเบ.
เบ”เบต, เปƒเบซเป‰เบ‚เบญเบ‡เบ‚เบธเบ”. เบšเบฒเบ‡เบ—เบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฐเบชเบฐเบชเบปเบกเป€เบ›เบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบเบฒเบ™เบชเบทเบšเบชเบงเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ—เบฑเบ™เบ—เบตเบ”เป‰เบงเบเบ•เบฒเป€เบ›เบปเปˆเบฒ, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ resorting เบเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ.
1) เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบต, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡.
2) เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ”เป‰เบงเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเบซเบผเบฒเบ.
เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบตเปเบ™เปˆเบ™เบญเบ™. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบกเบทเบซเบ™เบถเปˆเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบ™เบตเป‰เปเบกเปˆเบ™เบ”เบตเบซเบผเบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰.
เบขเปˆเบฒเป„เบ›เบซเบฒเปเปเบ”เบน (เบ„).
เปเบœเบ™โ€‹เบเบฒเบ™โ€‹เบชเบญเบšโ€‹เบ–เบฒเบกโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบชเบฑเบšโ€‹เบชเบปเบ™โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบงเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ‚เป‰เบญเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹:
เปเบœเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบฅเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”, เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เปเบกเปˆเบ™เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบชเบดเป‰เบ™เบชเบธเบ”.
Nested Loop (cost=935.84..479763226.18 rows=3322 width=135) (เป€เบงเบฅเบฒเบˆเบดเบ‡=31.536..8220420.295 rows=8111656 loops=1)
เป€เบงเบฅเบฒเบงเบฒเบ‡เปเบœเบ™: 3.807 ms
เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”: 8222351.640 ms
เป€เบงเบฅเบฒเบชเปเบฒเป€เบฅเบฑเบ”เปเบกเปˆเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 2 เบŠเบปเปˆเบงเป‚เบกเบ‡.

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเป„เบ”เป‰เปƒเบŠเป‰เป€เบงเบฅเบฒ

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™ 1 - เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฎเบฑเบ”เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบชเป‰เบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบžเบฒเบšเปเบœเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒ https://explain.depesz.com/. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบšเปเปˆเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบทเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”. เบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบ—เบตเบชเบญเบ‡, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเป„เบ”เป‰. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบšเปเบงเปˆเบฒเบเบฒเบ™เบชเบฐเปเบเบ™เป€เบ•เบฑเบกเปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”. เบชเบทเบšเบ•เปเปˆเป€เบ”เบตเบ™เบซเบ™เป‰เบฒ.

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™ 2-เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเบฒเบเบ‚เป‰เบฒเบ‡ autovacuum, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบˆเบฑเบ”เป€เบšเบ.

เปเบ•เปˆ daemons autovacuum เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ”เบต, เบšเปเปˆเบกเบตเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบซเป‰เบญเบเบเบฒเบง. เบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™.

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™ 3 - เบชเบฐเบ–เบดเบ•เบดเปเบกเปˆเบ™เบฅเป‰เบฒเบชเบฐเป„เบซเบก, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ„เบทเบ™เปƒเบซเบกเปˆ

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

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเป‰เบ™เบ•เป 'wdata' เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เป€เบเบทเบญเบš 3 เบฅเป‰เบฒเบ™เบšเบฑเบ™เบ—เบถเบ.
เปเบฅเบฐเบกเบฑเบ™เปเบกเปˆเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ™เบตเป‰เบ—เบตเปˆ Full Scan เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก.

Hash Cond: ((w.SPENT_ID" = s.SPENT_ID") AND ((SubPlan 1) = s.SPENT_DATE"))
-> เบชเบฐเปเบเบ™ เปƒเบ™ wdata w (cost=0.00..574151.49 rows=26886249 width=46) (เป€เบงเบฅเบฒเบˆเบดเบ‡=0.005..8153.565 rows=26873950 loops=1)
เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™: "เบกเบฒ, เปƒเบซเป‰เบ”เบฑเบ”เบชเบฐเบ™เบตเปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบšเบดเบ™."
เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบตเปƒเบ™เบŠเปˆเบญเบ‡ โ€œSPENT_IDโ€
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™:
เปเบœเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเป‚เบ”เบเปƒเบŠเป‰เบ”เบฑเบ”เบชเบฐเบ™เบตเป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบ”เบต, เบกเบฑเบ™เบŠเปˆเบงเบเป„เบ”เป‰เบšเป?
เปเบกเปˆเบ™: 8 222 351.640 เบกเบช (เบšเปเปˆโ€‹เป€เบเบตเบ™ 2 เบŠเบปเปˆเบงโ€‹เป‚เบกเบ‡โ€‹)
เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™: 6 985 431.575 ms (เป€เบเบทเบญเบš 2 เบŠเบปเปˆเบงเป‚เบกเบ‡)
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบซเบกเบฒเบเป‚เบ›เบกเบ”เบฝเบงเบเบฑเบ™, เบกเบธเบกเป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡.
เบ‚เปเปƒเบซเป‰เบˆเบทเปˆเบˆเปเบฒเบ„เบฅเบฒเบชเบชเบดเบ:
โ€œเป€เบˆเบปเป‰เบฒเบกเบตเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเบšเปเปˆเบกเบตเบ›เบตเบเบšเป? เบˆเบฐเบŠเบญเบเบซเบฒ".

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

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

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

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเบซเบ™เบถเปˆเบ‡ - เปƒเบŠเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก

เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰ (เบ”เบต เบขเปˆเบฒเบ‡ เบซเบ™เป‰เบญเบ เบ‡เบฒเบก เบซเบผเบฒเบ):
เบชเบญเบšเบ–เบฒเบกเป‚เบ”เบเปƒเบŠเป‰ JOINSELECT
p.โ€œPARAMETER_IDโ€ เป€เบ›เบฑเบ™ parameter_id,
pd."PD_NAME" AS pd_name,
pd."CUSTOMER_PARTNUMBER" AS customer_partnumber,
w. "LRM" AS LRM,
w. "เบซเบผเบฒเบ" เป€เบ›เบฑเบ™ lotid,
w.โ€œRTD_VALUEโ€ AS RTD_value,
w.โ€œLOWER_SPEC_LIMITโ€ AS lower_spec_limit,
w.โ€œUPPER_SPEC_LIMITโ€ AS upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS เปƒเบŠเป‰_เบŠเบทเปˆ,
s.โ€œSPENT_DATEโ€ AS เปƒเบŠเป‰เบˆเปˆเบฒเบเบงเบฑเบ™เบ—เบต,
เบชเบฐเบเบฑเบ”(เบ›เบตเบˆเบฒเบ "SPENT_DATE") AS เบ›เบต,
เบชเบฐเบเบฑเบ”(เป€เบ”เบทเบญเบ™เบˆเบฒเบ "SPENT_DATE") เป€เบ›เบฑเบ™เป€เบ”เบทเบญเบ™,
s."REPORT_NAME" AS report_name,
p."STPM_NAME" AS stpm_name,
p.โ€œCUSTOMERPARAM_NAMEโ€ AS customerparam_name
เบˆเบฒเบ wdata w INner JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ s เบขเบนเปˆเปƒเบ™ w.โ€œSPENT_IDโ€=s.โ€โ€œSPENT_IDโ€
INNER JOIN pmtr p ON p.โ€œPARAMETER_IDโ€ = w.โ€œPARAMETER_IDโ€
INNER JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ_pd sp ON s.โ€œSPENT_IDโ€ = sp.โ€œSPENT_IDโ€
INner JOIN pd pd ON pd.โ€œPD_IDโ€ = sp.โ€œPD_IDโ€
เบšเปˆเบญเบ™เบ—เบตเปˆ
s.โ€œSPENT_DATEโ€ >= '2018-07-01' เปเบฅเบฐ s.โ€œSPENT_DATEโ€ <= '2018-09-30'AND
s.โ€œSPENT_DATEโ€ = (SELECT MAX(s2.โ€œSPENT_DATEโ€)
เบˆเบฒเบ wdata w2 INner JOIN เปƒเบŠเป‰ s2 ON w2.โ€œSPENT_IDโ€=s2.โ€œSPENT_IDโ€
เบžเบฒเบเปƒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก wdata w
ON w2.โ€œLRMโ€ = w.โ€œLRMโ€ );
เป€เบงเบฅเบฒเบงเบฒเบ‡เปเบœเบ™: 2.486 ms
เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”: 1223680.326 ms

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เปเบฒเบญเบดเบ”.
เปเบกเปˆเบ™: 6 ms (เป€เบเบทเบญเบš 985 เบŠเบปเปˆเบงเป‚เบกเบ‡).
เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™: 1 223 680.326 ms (เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒ 20 เบ™เบฒเบ—เบต).
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบต. เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบขเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบขเบธเบ”เป„เบ”เป‰.
เบชเปเบฒเบฅเบฑเบš

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเบชเบญเบ‡ - เบเปเบฒเบˆเบฑเบ” subquery เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡

เบ›เปˆเบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบณเบฎเป‰เบญเบ‡เบ‚เป:
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡SELECT
p.โ€œPARAMETER_IDโ€ เป€เบ›เบฑเบ™ parameter_id,
pd."PD_NAME" AS pd_name,
pd."CUSTOMER_PARTNUMBER" AS customer_partnumber,
w. "LRM" AS LRM,
w. "เบซเบผเบฒเบ" เป€เบ›เบฑเบ™ lotid,
w.โ€œRTD_VALUEโ€ AS RTD_value,
w.โ€œLOWER_SPEC_LIMITโ€ AS lower_spec_limit,
w.โ€œUPPER_SPEC_LIMITโ€ AS upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS เปƒเบŠเป‰_เบŠเบทเปˆ,
s.โ€œSPENT_DATEโ€ AS เปƒเบŠเป‰เบˆเปˆเบฒเบเบงเบฑเบ™เบ—เบต,
เบชเบฐเบเบฑเบ”(เบ›เบตเบˆเบฒเบ "SPENT_DATE") AS เบ›เบต,
เบชเบฐเบเบฑเบ”(เป€เบ”เบทเบญเบ™เบˆเบฒเบ "SPENT_DATE") เป€เบ›เบฑเบ™เป€เบ”เบทเบญเบ™,
s."REPORT_NAME" AS report_name,
p."STPM_NAME" AS stpm_name,
p.โ€œCUSTOMERPARAM_NAMEโ€ AS customerparam_name
เบˆเบฒเบ wdata w Inner JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ s.โ€œSPENT_IDโ€ = w.โ€œSPENT_IDโ€
INNER JOIN pmtr p ON p.โ€œPARAMETER_IDโ€ = w.โ€œPARAMETER_IDโ€
INNER JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ_pd sp ON s.โ€œSPENT_IDโ€ = sp.โ€œSPENT_IDโ€
INner JOIN pd pd ON pd.โ€œPD_IDโ€ = sp.โ€œPD_IDโ€
เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบžเบฒเบเปƒเบ™ (เป€เบฅเบทเบญเบ w2.โ€œLRMโ€, MAX(s2.โ€œSPENT_DATEโ€)
เบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰ s2 เบžเบฒเบเปƒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก wdata w2 ON s2.โ€œSPENT_IDโ€ = w2.โ€œSPENT_IDโ€
เบˆเบฑเบ”เบเบธเปˆเบกเป‚เบ”เบ w2.โ€œLRMโ€
) md เบชเบธเบ” w.โ€œLRMโ€ = md.โ€œLRMโ€
เบšเปˆเบญเบ™เบ—เบตเปˆ
s."SPENT_DATE" >= '2018-07-01' AND s."SPENT_DATE" <= '2018-09-30';
เป€เบงเบฅเบฒเบงเบฒเบ‡เปเบœเบ™: 2.291 ms
เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”: 165021.870 ms

เปเบกเปˆเบ™: 1 223 680.326 ms (เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒ 20 เบ™เบฒเบ—เบต).
เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™: 165 021.870 ms (เบžเบฝเบ‡เปเบ•เปˆ 2 เบ™เบฒเบ—เบต).
เบ™เบตเป‰เปเบกเปˆเบ™เบ”เบตเปเบฅเป‰เบง.
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบญเบฑเบ‡เบเบดเบ”เป€เบงเบปเป‰เบฒเบงเปˆเบฒ "เปเบ•เปˆ, เบกเบตเบชเบฐเป€เบซเบกเบตเปเบ•เปˆ" เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเป€เบเบตเบ™เป„เบ›เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เบขเบนเปˆเบšเปˆเบญเบ™เบ™เบตเป‰.

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เปเบ•เปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฑเบšเบกเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบธเบ”เบ—เป‰เบฒเบเบ–เบทเบเบ•เป‰เบญเบ‡.
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบฑเป‰เบ™เบเบฒเบ‡เบ—เปเบฒเบญเบดเบ”:
เปเบเป‰เป„เบ‚เบ„เปเบฒเบ–เบฒเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเปˆเบญเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡SELECT
p.โ€œPARAMETER_IDโ€ เป€เบ›เบฑเบ™ parameter_id,
pd."PD_NAME" AS pd_name,
pd."CUSTOMER_PARTNUMBER" AS customer_partnumber,
w. "LRM" AS LRM,
w. "เบซเบผเบฒเบ" เป€เบ›เบฑเบ™ lotid,
w.โ€œRTD_VALUEโ€ AS RTD_value,
w.โ€œLOWER_SPEC_LIMITโ€ AS lower_spec_limit,
w.โ€œUPPER_SPEC_LIMITโ€ AS upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS เปƒเบŠเป‰_เบŠเบทเปˆ,
s.โ€œSPENT_DATEโ€ AS เปƒเบŠเป‰เบˆเปˆเบฒเบเบงเบฑเบ™เบ—เบต,
เบชเบฐเบเบฑเบ”(เบ›เบตเบˆเบฒเบ s.โ€œSPENT_DATEโ€) เป€เบ›เบฑเบ™เบ›เบต,
เบชเบฐเบเบฑเบ”(เป€เบ”เบทเบญเบ™เบˆเบฒเบ s.โ€œSPENT_DATEโ€) เป€เบ›เบฑเบ™เป€เบ”เบทเบญเบ™,
s."REPORT_NAME" AS report_name,
p."STPM_NAME" AS stpm_name,
p.โ€œCUSTOMERPARAM_NAMEโ€ AS customerparam_name
เบˆเบฒเบ wdata w Inner JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ s.โ€œSPENT_IDโ€ = w.โ€œSPENT_IDโ€
INNER JOIN pmtr p ON p.โ€œPARAMETER_IDโ€ = w.โ€œPARAMETER_IDโ€
INNER JOIN เปƒเบŠเป‰เป€เบงเบฅเบฒ_pd sp ON s.โ€œSPENT_IDโ€ = sp.โ€œSPENT_IDโ€
INner JOIN pd pd ON pd.โ€œPD_IDโ€ = sp.โ€œPD_IDโ€
เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบžเบฒเบเปƒเบ™ (เป€เบฅเบทเบญเบ w2.โ€œLRMโ€, MAX(s2.โ€œSPENT_DATEโ€) เป€เบ›เบฑเบ™ โ€œSPENT_DATEโ€
เบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰ s2 เบžเบฒเบเปƒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก wdata w2 ON s2.โ€œSPENT_IDโ€ = w2.โ€œSPENT_IDโ€
เบˆเบฑเบ”เบเบธเปˆเบกเป‚เบ”เบ w2.โ€œLRMโ€
) md ON md.โ€œSPENT_DATEโ€ = s.โ€œSPENT_DATEโ€ เปเบฅเบฐ md.โ€œLRMโ€ = w.โ€œLRMโ€
เบšเปˆเบญเบ™เบ—เบตเปˆ
s."SPENT_DATE" >= '2018-07-01' AND s."SPENT_DATE" <= '2018-09-30';
เป€เบงเบฅเบฒเบงเบฒเบ‡เปเบœเบ™: 3.192 ms
เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”: 208014.134 ms

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบดเป‰เบ™เบชเบธเบ”เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบเบญเบกเบฎเบฑเบš, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบญเบฑเบšเบญเบฒเบเบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒ:
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ: 8 222 351.640 ms (เบซเบผเบฒเบเบเบงเปˆเบฒ 2 เบŠเบปเปˆเบงเป‚เบกเบ‡)
เบžเบงเบเป€เบฎเบปเบฒเบ„เบธเป‰เบกเบ„เบญเบ‡เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธ: 1 ms (เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 223 เบ™เบฒเบ—เบต).
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš (เบŠเบปเปˆเบงเบ„เบฒเบง): 208 014.134 ms (เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒ 3 เบ™เบฒเบ—เบต).

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”.

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

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

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เปเบกเปˆเบ™เป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆ. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบšเบšเบชเบญเบšเบ–เบฒเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เบญเบตเบเบ•เปเปˆเป„เบ› (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบ•เปเปˆเบกเบฒ, เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบง). เปเบ•เปˆเป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบญเบญเบเปเบšเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เปเบฅเป‰เบงเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ”เบตเบซเบผเบฒเบ. เปเบฅเบฐเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ. เบญเบตเบเป€เบ—เบทเปˆเบญเปœเบถเปˆเบ‡, เบˆเบปเปˆเบ‡เบˆเบทเปˆเบˆเบณเบ„เบงเบฒเบกเปœเบธเปˆเบกเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เป€เบ›เบฑเบ™ DBA เบ—เบฑเบ™เบ—เบต, เบ‚เป‰เบญเบเป€เบ•เบตเบšเปƒเบซเบเปˆเป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก (BASIC, assembler, C, double-plus C, Oracle, plsql). เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เปเบ™เปˆเบ™เบญเบ™, เบชเปเบฒเบฅเบฑเบš memoir เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ ;-).
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบšเบเบงเบ™.

เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™

เป€เบˆเบปเป‰เบฒเบˆเบทเปˆเป„เบ”เป‰เบšเปเบงเปˆเบฒเบกเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ™เบงเปƒเบ”. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡

เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบˆเบฐเบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒเบšเป?
Spoiler - "เปเบกเปˆเบ™เปเบฅเป‰เบง, เบกเบฑเบ™เบŠเปˆเบงเบ, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ."

เปเบ•เปˆโ€‹เบ™เบฑเป‰เบ™โ€‹เป€เบ›เบฑเบ™โ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบซเบกเบปเบ” ...

เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ•เบญเบ™โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€ฆ

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

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