เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชเชธเช•เซเชฏเซเชเชฒ เช•เซเชตเซ‡เชฐเซ€ เช“เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชธเชพเชฅเซ‡ เชฎเชพเชฐเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เช…เชจเซ‡ เช† เชฌเชงเชพเชฎเชพเช‚เชฅเซ€ เชถเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡.
เชคเชฎเชพเชฐเซ‡ เช•เซ‡เชฎ เช•เชฐเชตเซเช‚ เชชเชกเซเชฏเซเช‚? เชนเชพ, เช•เชพเชฐเชฃ เช•เซ‡ เชชเชพเช›เชฒเชพ 4 เชตเชฐเซเชทเซ‹เชฎเชพเช‚ เชฌเชงเซเช‚ เชถเชพเช‚เชคเชฟเชฅเซ€, เชถเชพเช‚เชคเชฟเชฅเซ€ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชนเชคเซเช‚, เชœเซ‡เชฎ เช•เซ‡ เช˜เชกเชฟเชฏเชพเชณ เชŸเชฟเช• เช•เชฐเซ€ เชฐเชนเซ€ เชนเชคเซ€.
เชเชชเชฟเช—เซเชฐเชพเชซ เชคเชฐเซ€เช•เซ‡.

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชตเชพเชธเซเชคเชตเชฟเช• เช˜เชŸเชจเชพเช“ เชชเชฐ เช†เชงเชพเชฐเชฟเชค.
เชฌเชงเชพ เชจเชพเชฎเซ‹ เชฌเชฆเชฒเชพเชˆ เช—เชฏเชพ เช›เซ‡, เชธเช‚เชฏเซ‹เช—เซ‹ เชฐเซ‡เชจเซเชกเชฎ เช›เซ‡.

เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชšเซ‹เช•เซเช•เชธ เชชเชฐเชฟเชฃเชพเชฎ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เชนเช‚เชฎเซ‡เชถเชพ เชฐเชธเชชเซเชฐเชฆ เช›เซ‡ เช•เซ‡ เชถเชฐเซ‚เช†เชค เชฎเชพเชŸเซ‡ เชถเซเช‚ เชชเซเชฐเซ‹เชคเซเชธเชพเชนเชจ เชนเชคเซเช‚, เชคเซ‡ เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚.

เชคเซ‡เชฅเซ€, เชชเชฐเชฟเชฃเชพเชฎเซ‡ เชœเซ‡ เชฌเชจเซเชฏเซเช‚ เชคเซ‡ เชฒเซ‡เช–เชฎเชพเช‚ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ โ€œPostgreSQL เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟเช“เชฎเชพเช‚เชจเซ€ เชเช• เชคเชฐเซ€เช•เซ‡ เชธเชฟเชจเซเชฅเซ‡เชธเชฟเชธยป.

เช…เช—เชพเช‰เชจเซ€ เช‡เชตเซ‡เชจเซเชŸเซเชธเชจเซ€ เชธเชพเช‚เช•เชณเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเซ€ เช•เชฆเชพเชš เชฐเชธเชชเซเชฐเชฆ เชฐเชนเซ‡เชถเซ‡.
เช‡เชคเชฟเชนเชพเชธเซ‡ เชšเซ‹เช•เซเช•เชธ เชถเชฐเซ‚เช†เชคเชจเซ€ เชคเชพเชฐเซ€เช– เชฐเชพเช–เซ€ เช›เซ‡ โ€” 2018-09-10 18:02:48.
เช‰เชชเชฐเชพเช‚เชค, เชตเชพเชฐเซเชคเชพเชฎเชพเช‚ เชเช• เชตเชฟเชจเช‚เชคเซ€ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเช‚เชฅเซ€ เชคเซ‡ เชฌเชงเซเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚:
เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเช‚เชคเซ€เชชเชธเช‚เชฆ เช•เชฐเซ‹
p. "PARAMETER_ID" parameter_id เชคเชฐเซ€เช•เซ‡,
pd. "PD_NAME" AS pd_name,
pd. "CUSTOMER_PARTNUMBER" เช—เซเชฐเชพเชนเช•_เชญเชพเช—เซ€ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡,
w."LRM" AS LRM,
w. "LOTID" as lotid,
w. "RTD_VALUE" AS RTD_เชฎเซ‚เชฒเซเชฏ,
w. "LOWER_SPEC_LIMIT" as low_spec_limit,
w. "UPPER_SPEC_LIMIT" as upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS spent_name,
s."SPENT_DATE" AS spent_date,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชตเชฐเซเชท) AS เชตเชฐเซเชท,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชฎเชนเชฟเชจเซ‹) เชฎเชนเชฟเชจเชพ เชคเชฐเซ€เช•เซ‡,
s."REPORT_NAME" AS เชฐเชฟเชชเซ‹เชฐเซเชŸ_เชจเชพเชฎ,
p. "STPM_NAME" AS stpm_name,
p."CUSTOMERPARAM_NAME" as customerparam_name
wdataw เชฅเซ€,
เช–เชฐเซเชšเซเชฏเชพ
pmtrp,
spent_pdsp,
pd pd
เช•เซเชฏเชพเช‚ s."SPENT_ID" = w."SPENT_ID"
เช…เชจเซ‡ p."PARAMETER_ID" = w."PARAMETER_ID"
เช…เชจเซ‡ s."SPENT_ID" = sp."SPENT_ID"
เช…เชจเซ‡ pd. "PD_ID" = sp. "PD_ID"
เช…เชจเซ‡ s."SPENT_DATE" >= '2018-07-01' เช…เชจเซ‡ เชธเซ‡."SPENT_DATE" <= '2018-09-30'
เช…เชจเซ‡ s."SPENT_DATE" = (SELECT MAX(s2."SPENT_DATE")
s2 เช–เชฐเซเชšเชตเชพเชฎเชพเช‚เชฅเซ€,
wdata w2
เชœเซเชฏเชพเช‚ s2."SPENT_ID" = w2."SPENT_ID"
เช…เชจเซ‡ w2."LRM" = w."LRM");


เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เชตเชฐเซเชฃเชจ, เช…เชจเซเชฎเชพเชจเชฟเชค เชงเซ‹เชฐเชฃ - โ€œเชฌเชงเซเช‚ เช–เชฐเชพเชฌ เช›เซ‡. เชฎเชจเซ‡ เช•เชนเซ‹ เช•เซ‡ เชธเชฎเชธเซเชฏเชพ เชถเซเช‚ เช›เซ‡."
เชฎเชจเซ‡ เชคเชฐเชค เชœ เชธเชพเชกเชพ 3 เช‡เช‚เชšเชจเซ€ เชกเซเชฐเชพเช‡เชตเชจเชพ เชธเชฎเชฏเชฅเซ€ เชเช• เชฎเชœเชพเช• เชฏเชพเชฆ เช†เชตเซ€:

เชฒเซ‡เชฎเชฐ เชนเซ‡เช•เชฐ เชชเชพเชธเซ‡ เช†เชตเซ‡ เช›เซ‡.
- เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชฎเชจเซ‡ เช•เชนเซ‹ เช•เซ‡ เชธเชฎเชธเซเชฏเชพ เช•เซเชฏเชพเช‚ เช›เซ‡.
- DNA เชฎเชพเช‚...

เชชเชฐเช‚เชคเซ, เช…เชฒเชฌเชคเซเชค, เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ€ เช˜เชŸเชจเชพเช“เชจเซ‡ เชนเชฒ เช•เชฐเชตเชพเชจเซ‹ เช† เชฐเชธเซเชคเซ‹ เชจเชฅเซ€. "เช†เชชเชฃเชจเซ‡ เช•เชฆเชพเชš เชธเชฎเชœเชพเชฏ เชจเชนเซ€เช‚"(เชธเชพเชฅเซ‡). เชคเซ‡ เช†เช•เซƒเชคเชฟ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
เชธเชพเชฐเซเช‚, เชšเชพเชฒเซ‹ เช–เซ‹เชฆเชตเซเช‚. เช•เชฆเชพเชš เชคเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‡ เชเช•เช เชพ เชฅเชถเซ‡.

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชฐเซ‹เช•เชพเชฃ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚

เชคเซ‡เชฅเซ€, EXPLAIN เชจเซ‹ เช†เชถเชฐเซ‹ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ, เชจเชฐเซ€ เช†เช‚เช–เซ‡ เชคเชฐเชค เชœ เชถเซเช‚ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡.
1) JOIN เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชคเซ‹ เชจเชฅเซ€. เช† เช–เชฐเชพเชฌ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‹ เชœเซ‹เชกเชพเชฃเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชเช• เช•เชฐเชคเชพ เชตเชงเซ เชนเซ‹เชฏ.
2) เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพเชฅเซ€ เชชเชฃ เช–เชฐเชพเชฌ เชถเซเช‚ เช›เซ‡ - เชเช• เชธเชนเชธเช‚เชฌเช‚เชงเชฟเชค เชธเชฌเช•เซเชตเซ‡เชฐเซ€, เชตเชงเซเชฎเชพเช‚, เชเช•เชคเซเชฐเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡. เช† เชฌเชนเซ เช–เชฐเชพเชฌ เช›เซ‡.
เช† เช…เชฒเชฌเชคเซเชค เช–เชฐเชพเชฌ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† เชฎเชพเชคเซเชฐ เชเช• เชคเชฐเชซ เช›เซ‡. เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เช† เช–เซ‚เชฌ เชœ เชธเชพเชฐเซเช‚ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเซเชชเชทเซเชŸ เช‰เช•เซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เชธเซเชงเชพเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.
เชจเชธเซ€เชฌเชฆเชพเชฐ (C) เชชเชพเชธเซ‡ เชจ เชœเชถเซ‹.
เชชเซเชฐเชถเซเชจ เชฏเซ‹เชœเชจเชพ เชเชŸเชฒเซ€ เชœเชŸเชฟเชฒ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเชฆเซเชฆเชจ เชธเซ‚เชšเช• เช›เซ‡:
เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชชเซเชฒเชพเชจเชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชธเซŒเชฅเซ€ เชฐเชธเชชเซเชฐเชฆ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€, เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ, เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช…เชจเซ‡ เช…เช‚เชคเซ‡.
เชจเซ‡เชธเซเชŸเซ‡เชก เชฒเซ‚เชช (เช•เชฟเช‚เชฎเชค=935.84..479763226.18 เชชเช‚เช•เซเชคเชฟเช“=3322 เชชเชนเซ‹เชณเชพเชˆ=135) (เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชฏ=31.536..8220420.295 เชชเช‚เช•เซเชคเชฟเช“=8111656 เชฒเซ‚เชชเซเชธ=1)
เช†เชฏเซ‹เชœเชจ เชธเชฎเชฏ: 3.807ms
เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏ: 8222351.640ms
เช…เชฎเชฒเชจเซ‹ เชธเชฎเชฏ 2 เช•เชฒเชพเช•เชฅเซ€ เชตเชงเซ เช›เซ‡.

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เช–เซ‹เชŸเซ€ เชชเซ‚เชฐเซเชตเชงเชพเชฐเชฃเชพเช“ เชœเซ‡เชฎเชพเช‚ เชธเชฎเชฏ เชฒเชพเช—เซเชฏเซ‹

เชชเซ‚เชฐเซเชตเชงเชพเชฐเชฃเชพ 1- เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเชฐ เช–เซ‹เชŸเซเช‚ เช›เซ‡, เช–เซ‹เชŸเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชชเซเชฒเชพเชจเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชธเชพเช‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ https://explain.depesz.com/. เชœเซ‹ เช•เซ‡, เชธเชพเช‡เชŸเซ‡ เช•เช‚เชˆเชชเชฃ เชฐเชธเชชเซเชฐเชฆ เช…เชฅเชตเชพ เช‰เชชเชฏเซ‹เช—เซ€ เชฆเชฐเซเชถเชพเชตเซเชฏเซเช‚ เชจเชฅเซ€. เชชเซเชฐเชฅเชฎ เช…เชจเซ‡ เชฌเซ€เชœเซ€ เชจเชœเชฐเชฎเชพเช‚ - เช–เชฐเซ‡เช–เชฐ เชฎเชฆเชฆ เช•เชฐเซ€ เชถเช•เซ‡ เชคเซ‡เชตเซเช‚ เช•เช‚เชˆ เชจเชฅเซ€. เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ - เชชเซ‚เชฐเซเชฃ เชธเซเช•เซ‡เชจ เชจเซเชฏเซ‚เชจเชคเชฎ เช›เซ‡. เช†เช—เชณ เชตเชงเซ‹.

เชชเซ‚เชฐเซเชตเชงเชพเชฐเชฃเชพ 2-เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎเชจเซ€ เชฌเชพเชœเซเชฅเซ€ เช†เชงเชพเชฐ เชชเชฐ เช…เชธเชฐ, เชคเชฎเชพเชฐเซ‡ เชฌเซเชฐเซ‡เช•เซเชธเชฅเซ€ เช›เซเชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชชเชฐเช‚เชคเซ, เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชกเชฟเชฎเชจ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชตเชฐเซเชคเซ‡ เช›เซ‡, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชฒเชพเช‚เชฌเซ€ เชฒเชŸเช•เชคเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชจเชฅเซ€. เช•เซ‹เชˆเชชเชฃ เช—เช‚เชญเซ€เชฐ เชญเชพเชฐ - เชจเชพ. เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเช• เชœเซ‹เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชชเซ‚เชฐเซเชตเชงเชพเชฐเชฃเชพ 3-เช†เช‚เช•เชกเชพ เชœเซ‚เชจเชพ เช›เซ‡, เชคเชฎเชพเชฐเซ‡ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ€ เชชเซเชจเชƒ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

เชซเชฐเซ€เชฅเซ€, เชคเซ‡ เชจเชฅเซ€. เช†เช‚เช•เชกเชพ เช…เชฆเซเชฏเชคเชจ เช›เซ‡. เชœเซ‡, เช“เชŸเซ‹เชตเซ‡เช•เซเชฏเซเชฎ เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช…เชญเชพเชตเชจเซ‡ เชœเซ‹เชคเชพเช‚, เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชจเชฅเซ€.

เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ€เช

เชฎเซเช–เซเชฏ เชŸเซ‡เชฌเชฒ 'wdata' เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชจเชพเชจเซเช‚ เชจเชฅเซ€, เชฒเช—เชญเช— 3 เชฎเชฟเชฒเชฟเชฏเชจ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เช›เซ‡.
เช…เชจเซ‡ เชคเซ‡ เช† เชŸเซ‡เชฌเชฒ เชชเชฐ เช›เซ‡ เช•เซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซเช•เซ‡เชจ เชœเชพเชฏ เช›เซ‡.

เชนเซ‡เชถ เช•เซ‹เชจเซเชจเซเชก: ((w."SPENT_ID" = s."SPENT_ID") เช…เชจเซ‡ ((เชธเชฌเชชเซเชฒเชพเชจ 1) = s."SPENT_DATE"))
-> เชธเซ‡เช• เชธเซเช•เซ‡เชจ wdata w เชชเชฐ (cost=0.00..574151.49 เชชเช‚เช•เซเชคเชฟเช“=26886249 เชชเชนเซ‹เชณเชพเชˆ=46) (เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชฏ=0.005..8153.565 เชชเช‚เช•เซเชคเชฟเช“=26873950 เชฒเซ‚เชชเซเชธ=1)
เช…เชฎเซ‡ เชฎเชพเชจเช• เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ€เช เช›เซ€เช: "เชšเชพเชฒเซ‹ เชเช• เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เชฌเชจเชพเชตเซ€เช เช…เชจเซ‡ เชฌเชงเซเช‚ เช‰เชกเซ‡ เช›เซ‡".
เชซเซ€เชฒเซเชก "SPENT_ID" เชชเชฐ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ เชฌเชจเชพเชตเซ€
เชชเชฐเชฟเชฃเชพเชฎ เชธเซเชตเชฐเซ‚เชช:
เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชตเซ‡เชฐเซ€ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชชเซเชฒเชพเชจเชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชธเชพเชฐเซเช‚, เชคเซ‡ เชฎเชฆเชฆ เช•เชฐเซ€ เชนเชคเซ€?
เชนเชคเซ€: 8 222 351.640 ms (เชซเช•เซเชค 2 เช•เชฒเชพเช•เชฅเซ€ เชตเชงเซ)
เชคเซ‡ เชฌเชจเซเชฏเซเช‚: 6 985 431.575 ms (เชฒเช—เชญเช— 2 เช•เชฒเชพเช•)
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชธเชฎเชพเชจ เชธเชซเชฐเชœเชจ, เชฌเชพเชœเซ เชฆเซƒเชถเซเชฏ.
เชšเชพเชฒเซ‹ เช•เซเชฒเชพเชธเชฟเช• เชฏเชพเชฆ เช•เชฐเซ€เช:
โ€œเชถเซเช‚ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชเช• เชœ เช›เซ‡, เชชเชฃ เชชเชพเช‚เช–เซ‹ เชตเชฟเชจเชพ? เชถเซ‹เชงเชถเซ‡".

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เช†เชจเซ‡ เชธเชพเชฐเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช•เชนเซ€ เชถเช•เชพเชฏ, เชธเชพเชฐเซเช‚, เชธเชพเชฐเซเช‚ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชธเซเชตเซ€เช•เชพเชฐเซเชฏ. เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚, เช•เซ‡เชŸเชฒเซเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชธเชพเชฐเซเช‚ เช›เซ‡ เชคเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชคเชพ เช—เซเชฐเชพเชนเช•เชจเซ‡ เชฎเซ‹เชŸเซ‹ เช…เชนเซ‡เชตเชพเชฒ เช†เชชเซ‹.
เชœเซ‹เช•เซ‡, เช…เช‚เชคเชฟเชฎ เชจเชฟเชฐเซเชฃเชฏ เชนเชœเซ เชฆเซ‚เชฐ เช›เซ‡. เชฌเชนเซ เชฆเซ‚เชฐ.

เช…เชจเซ‡ เชนเชตเซ‡ เชธเซŒเชฅเซ€ เชฐเชธเชชเซเชฐเชฆ เชฌเชพเชฌเชค - เช…เชฎเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช เช›เซ€เช, เช…เชฎเซ‡ เช•เซเชตเซ‡เชฐเซ€ เชชเซ‹เชฒเชฟเชถ เช•เชฐเซ€เชถเซเช‚

เชชเชนเซ‡เชฒเซเช‚ เชชเช—เชฒเซเช‚ - JOIN เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เชซเชฐเซ€เชฅเซ€ เชฒเช–เซ‡เชฒเซ€ เช•เซเชตเซ‡เชฐเซ€, เชนเชตเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ (เชธเชพเชฐเซเช‚ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชธเซเช‚เชฆเชฐ):
JOIN เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชตเซ‡เชฐเซ€ เช•เชฐเซ‹เชชเชธเช‚เชฆ เช•เชฐเซ‹
p. "PARAMETER_ID" parameter_id เชคเชฐเซ€เช•เซ‡,
pd. "PD_NAME" AS pd_name,
pd. "CUSTOMER_PARTNUMBER" เช—เซเชฐเชพเชนเช•_เชญเชพเช—เซ€ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡,
w."LRM" AS LRM,
w. "LOTID" as lotid,
w. "RTD_VALUE" AS RTD_เชฎเซ‚เชฒเซเชฏ,
w. "LOWER_SPEC_LIMIT" as low_spec_limit,
w. "UPPER_SPEC_LIMIT" as upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS spent_name,
s."SPENT_DATE" AS spent_date,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชตเชฐเซเชท) AS เชตเชฐเซเชท,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชฎเชนเชฟเชจเซ‹) เชฎเชนเชฟเชจเชพ เชคเชฐเซ€เช•เซ‡,
s."REPORT_NAME" AS เชฐเชฟเชชเซ‹เชฐเซเชŸ_เชจเชพเชฎ,
p. "STPM_NAME" AS stpm_name,
p."CUSTOMERPARAM_NAME" as customerparam_name
เชกเชฌเซเชฒเซเชฏเซเชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ เช–เชฐเซเชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ w."SPENT_ID"=s."SPENT_ID"
INNER JOIN pmtr p ON p."PARAMETER_ID" = w."PARAMETER_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ spent_pd sp ON s."SPENT_ID" = sp."SPENT_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ pd pd ON pd."PD_ID" = sp."PD_ID"
เช•เซเชฏเชพเช‚ เช›เซ‡
s."SPENT_DATE" >= '2018-07-01' เช…เชจเซ‡ เชธเซ‡."SPENT_DATE" <= '2018-09-30'เช…เชจเซ‡
s."SPENT_DATE" = (MAX(s2."SPENT_DATE") เชชเชธเช‚เชฆ เช•เชฐเซ‹
w2 เช…เช‚เชฆเชฐเชจเซ€ เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ w2 เชชเชฐ s2 เช–เชฐเซเชšเซเชฏเชพ wdata เชฎเชพเช‚เชฅเซ€."SPENT_ID"=s2."SPENT_ID"
เช‡เชจเชฐ เชœเซ‹เช‡เชจ wdata w
ON w2."LRM" = w."LRM" );
เช†เชฏเซ‹เชœเชจ เชธเชฎเชฏ: 2.486ms
เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏ: 1223680.326ms

เชคเซ‹ เช…เชนเซ€เช‚ เชชเซเชฐเชฅเชฎ เชชเชฐเชฟเชฃเชพเชฎ เช›เซ‡.
เชนเชคเซ€: 6 985 431.575 ms (เชฒเช—เชญเช— 2 เช•เชฒเชพเช•).
เชคเซ‡ เชฌเชจเซเชฏเซเช‚: 1 223 680.326 ms (เชฎเชพเชคเซเชฐ 20 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ).
เชธเชพเชฐเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เชซเชฐเซ€เชฅเซ€, เชคเซเชฏเชพเช‚ เชฐเซ‹เช•เชตเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡. เชชเชฐเช‚เชคเซ เชคเซ‡เชฅเซ€ เชฐเชธเชนเซ€เชจ, เชคเชฎเซ‡ เชฐเซ‹เช•เซ€ เชถเช•เชคเชพ เชจเชฅเซ€.
เชฎเชพเชŸเซ‡

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชชเช—เชฒเซเช‚ เชฌเซ‡ - เชธเชนเชธเช‚เชฌเช‚เชงเชฟเชค เชธเชฌเช•เซเชตเซ‡เชฐเซ€เชฎเชพเช‚เชฅเซ€ เช›เซเชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเซ‹

เชฌเชฆเชฒเชพเชฏเซ‡เชฒ เชตเชฟเชจเช‚เชคเซ€ เชŸเซ‡เช•เซเชธเซเชŸ:
เช•เซ‹เชˆ เชธเชนเชธเช‚เชฌเช‚เชงเชฟเชค เชธเชฌเช•เซเชตเซ‡เชฐเซ€ เชจเชฅเซ€เชชเชธเช‚เชฆ เช•เชฐเซ‹
p. "PARAMETER_ID" parameter_id เชคเชฐเซ€เช•เซ‡,
pd. "PD_NAME" AS pd_name,
pd. "CUSTOMER_PARTNUMBER" เช—เซเชฐเชพเชนเช•_เชญเชพเช—เซ€ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡,
w."LRM" AS LRM,
w. "LOTID" as lotid,
w. "RTD_VALUE" AS RTD_เชฎเซ‚เชฒเซเชฏ,
w. "LOWER_SPEC_LIMIT" as low_spec_limit,
w. "UPPER_SPEC_LIMIT" as upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS spent_name,
s."SPENT_DATE" AS spent_date,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชตเชฐเซเชท) AS เชตเชฐเซเชท,
เช…เชฐเซเช• ("SPENT_DATE" เชฅเซ€ เชฎเชนเชฟเชจเซ‹) เชฎเชนเชฟเชจเชพ เชคเชฐเซ€เช•เซ‡,
s."REPORT_NAME" AS เชฐเชฟเชชเซ‹เชฐเซเชŸ_เชจเชพเชฎ,
p. "STPM_NAME" AS stpm_name,
p."CUSTOMERPARAM_NAME" as customerparam_name
เชกเชฌเชฒเซเชฏเซเชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ s เชชเชฐ เช–เชฐเซเชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹."SPENT_ID" = w."SPENT_ID"
INNER JOIN pmtr p ON p."PARAMETER_ID" = w."PARAMETER_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ spent_pd sp ON s."SPENT_ID" = sp."SPENT_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ pd pd ON pd."PD_ID" = sp."PD_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ (เชชเชธเช‚เชฆ เช•เชฐเซ‹ w2."LRM", MAX(s2."SPENT_DATE")
s2 INNER เชœเซ‹เช‡เชจ wdata w2 ON s2."SPENT_ID" = w2."SPENT_ID"
W2.LRM เชฆเซเชตเชพเชฐเชพ เชœเซ‚เชฅ
) md on w. "LRM" = md. "LRM"
เช•เซเชฏเชพเช‚ เช›เซ‡
s."SPENT_DATE" >= '2018-07-01' เช…เชจเซ‡ s."SPENT_DATE" <= '2018-09-30';
เช†เชฏเซ‹เชœเชจ เชธเชฎเชฏ: 2.291ms
เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏ: 165021.870ms

เชนเชคเซ€: 1 223 680.326 ms (เชฎเชพเชคเซเชฐ 20 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ).
เชคเซ‡ เชฌเชจเซเชฏเซเช‚: 165 021.870 ms (เชซเช•เซเชค 2 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ).
เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช˜เชฃเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡.
เชœเซ‹ เช•เซ‡, เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เช•เชนเซ‡ เช›เซ‡ เชคเซ‡เชฎ,เชชเชฐเช‚เชคเซ, เชคเซเชฏเชพเช‚ เชนเช‚เชฎเซ‡เชถเชพ เชเช• เชชเชฐเช‚เชคเซ เช›เซ‡" เช–เซ‚เชฌ เชธเชพเชฐเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช†เชชเซ‹เช†เชช เชถเช‚เช•เชพ เชœเช—เชพเชตเชถเซ‡. เช…เชนเซ€เช‚ เช•เช‚เชˆเช• เช–เซ‹เชŸเซเช‚ เช›เซ‡.

เชธเชนเชธเช‚เชฌเช‚เชงเชฟเชค เชธเชฌเช•เซเชตเซ‡เชฐเซ€เชฎเชพเช‚เชฅเซ€ เช›เซเชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชตเซ‡เชฐเซ€ เชธเซเชงเชพเชฐเชตเชพ เชตเชฟเชถเซ‡เชจเซ€ เชชเซ‚เชฐเซเชตเชงเชพเชฐเชฃเชพ เชธเชพเชšเซ€ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เช‚เชคเชฟเชฎ เชชเชฐเชฟเชฃเชพเชฎเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เชฅเซ‹เชกเซ‹ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชชเซเชฐเชฅเชฎ เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เชชเชฐเชฟเชฃเชพเชฎ:
เชธเชนเชธเช‚เชฌเช‚เชงเชฟเชค เชธเชฌเช•เซเชตเซ‡เชฐเซ€ เชตเชฟเชจเชพ เชธเช‚เชชเชพเชฆเชฟเชค เช•เซเชตเซ‡เชฐเซ€เชชเชธเช‚เชฆ เช•เชฐเซ‹
p. "PARAMETER_ID" parameter_id เชคเชฐเซ€เช•เซ‡,
pd. "PD_NAME" AS pd_name,
pd. "CUSTOMER_PARTNUMBER" เช—เซเชฐเชพเชนเช•_เชญเชพเช—เซ€ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡,
w."LRM" AS LRM,
w. "LOTID" as lotid,
w. "RTD_VALUE" AS RTD_เชฎเซ‚เชฒเซเชฏ,
w. "LOWER_SPEC_LIMIT" as low_spec_limit,
w. "UPPER_SPEC_LIMIT" as upper_spec_limit,
p."TYPE_CALCUL" AS type_calcul,
s."SPENT_NAME" AS spent_name,
s."SPENT_DATE" AS spent_date,
เช…เชฐเซเช• (s. "SPENT_DATE" เชฅเซ€ เชตเชฐเซเชท) AS เชตเชฐเซเชท,
เช…เชฐเซเช• (s. "SPENT_DATE" เชฎเชพเช‚เชฅเซ€ เชฎเชนเชฟเชจเซ‹) เชฎเชนเชฟเชจเชพ เชคเชฐเซ€เช•เซ‡,
s."REPORT_NAME" AS เชฐเชฟเชชเซ‹เชฐเซเชŸ_เชจเชพเชฎ,
p. "STPM_NAME" AS stpm_name,
p."CUSTOMERPARAM_NAME" as customerparam_name
เชกเชฌเชฒเซเชฏเซเชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ s เชชเชฐ เช–เชฐเซเชšเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹."SPENT_ID" = w."SPENT_ID"
INNER JOIN pmtr p ON p."PARAMETER_ID" = w."PARAMETER_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ spent_pd sp ON s."SPENT_ID" = sp."SPENT_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ pd pd ON pd."PD_ID" = sp."PD_ID"
เช†เช‚เชคเชฐเชฟเช• เชœเซ‹เชกเชพเช“ ( เชชเชธเช‚เชฆ เช•เชฐเซ‹ w2."LRM", MAX(s2."SPENT_DATE") AS "SPENT_DATE"
s2 INNER เชœเซ‹เช‡เชจ wdata w2 ON s2."SPENT_ID" = w2."SPENT_ID"
W2.LRM เชฆเซเชตเชพเชฐเชพ เชœเซ‚เชฅ
) md ON md."SPENT_DATE" = s."SPENT_DATE" AND md."LRM" = w."LRM"
เช•เซเชฏเชพเช‚ เช›เซ‡
s."SPENT_DATE" >= '2018-07-01' เช…เชจเซ‡ s."SPENT_DATE" <= '2018-09-30';
เช†เชฏเซ‹เชœเชจ เชธเชฎเชฏ: 3.192ms
เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏ: 208014.134ms

เชคเซ‡เชฅเซ€, เชชเชฐเชฟเชฃเชพเชฎ เชธเซเชตเชฐเซ‚เชชเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชœเซ‡ เช›เซ‡ เชคเซ‡ เชชเซเชฐเชฅเชฎ เชธเซเชตเซ€เช•เชพเชฐเซเชฏ เชชเชฐเชฟเชฃเชพเชฎ เช›เซ‡, เชœเซ‡ เช—เซเชฐเชพเชนเช•เชจเซ‡ เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช…เชฎเชจเซ‡ เชถเชฐเชฎ เชจเชฅเซ€:
เช†เชจเชพเชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ: 8 222 351.640 ms (2 เช•เชฒเชพเช•เชฅเซ€ เชตเชงเซ)
เชนเชพเช‚เชธเชฒ: 1 ms (เชฎเชพเชคเซเชฐ 223 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ).
เชชเชฐเชฟเชฃเชพเชฎ (เชฎเชงเซเชฏเชตเชฐเซเชคเซ€): 208 014.134 ms (เชซเช•เซเชค 3 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ).

เช‰เชคเซเชคเชฎ เชชเชฐเชฟเชฃเชพเชฎ.

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เชชเชฐเชฟเชฃเชพเชฎ

เช† เช…เชŸเช•เซ€ เชถเช•เซเชฏเซเช‚ เชนเซ‹เชค.
เชชเชฐเช‚เชคเซโ€ฆ
เชญเซ‚เช– เช–เชพเชตเชพเชจเซ€ เชธเชพเชฅเซ‡ เช†เชตเซ‡ เช›เซ‡. เชฐเซ‹เชก เชšเชพเชฒเชตเชพเชฅเซ€ เชฎเชพเชธเซเชŸ เชฅเชถเซ‡. เช•เซ‹เชˆเชชเชฃ เชชเชฐเชฟเชฃเชพเชฎ เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เช›เซ‡. เชฎเซƒเชค เชฌเช‚เชง. เชตเช—เซ‡เชฐเซ‡.
เชšเชพเชฒเซ‹ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชธเชพเชฅเซ‡ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช.
เชฎเชนเชพเชจ เชตเชฟเชšเชพเชฐ. เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เช—เซเชฐเชพเชนเช• เชคเซ‡เชจเซ€ เชธเชพเชฎเซ‡ เชชเชฃ เชจ เชนเชคเซ‹ เชคเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเซเช‚. เช…เชจเซ‡ เชคเซ‡ เชชเชฃ เชฎเชœเชฌเซ‚เชค - เชฎเชพเชŸเซ‡.

เชคเซ‡เชฅเซ€, เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เช†เชตเซ€ เช—เชฏเซ‹ เช›เซ‡. เชตเชฟเชจเช‚เชคเซ€เชจเซเช‚ เชฎเชพเชณเช–เซเช‚ เชนเชตเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€ (เชœเซ‹เช•เซ‡, เชคเซ‡ เชชเช›เซ€เชฅเซ€ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เชคเซ‡เชฎ, เช–เชฐเซ‡เช–เชฐ เช‰เชกเชตเชพ เชฎเชพเชŸเซ‡ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เชฎเชพเชŸเซ‡ เชเช• เชตเชฟเช•เชฒเซเชช เช›เซ‡). เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชกเชฟเชเชพเช‡เชจเชจเซเช‚ เช“เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เช…เชจเซ‡ เชตเชฟเช•เชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช• เช–เซ‚เชฌ เชœ เช†เชถเชพเชธเซเชชเชฆ เชตเชฟเชšเชพเชฐ เช›เซ‡. เช…เชจเซ‡ เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚ เชฐเชธเชชเซเชฐเชฆ. เชซเชฐเซ€เชฅเซ€, เชฏเซเชตเชพเชจเซ€ เชฏเชพเชฆ เชฐเชพเช–เซ‹. เช›เซ‡เชตเชŸเซ‡, เชนเซเช‚ เชคเชฐเชค เชœ เชกเซ€เชฌเซ€เช เชฌเชจเซเชฏเซ‹ เชจ เชนเชคเซ‹, เชนเซเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ (เชฎเซ‚เชณเชญเซ‚เชค, เชเชธเซ‡เชฎเซเชฌเชฒเชฐ, si, si เชฌเซ‡ เชตเชพเชฐ เชชเซเชฒเชธ, เช“เชฐเซ‡เช•เชฒ, plsql)เชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชŸเซ‹ เชฅเชฏเซ‹. เชเช• เชฐเชธเชชเซเชฐเชฆ เชตเชฟเชทเชฏ, เช…เชฒเชฌเชคเซเชค, เช…เชฒเช— เชธเช‚เชธเซเชฎเชฐเชฃเซ‹ เชฎเชพเชŸเซ‡ ;-).
เชœเซ‹ เช•เซ‡, เชšเชพเชฒเซ‹ เชตเชฟเชทเชฏเชพเช‚เชคเชฐ เชจ เช•เชฐเซ€เช.

เช…เชจเซ‡ เชคเซ‡เชฅเซ€,

เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชฌเชงเซเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชนเชคเซเช‚

เช…เชจเซ‡ เช•เชฆเชพเชš เชตเชฟเชญเชพเช—เซ€เช•เชฐเชฃ เช…เชฎเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชถเซ‡?
เชธเซเชชเซ‹เช‡เชฒเชฐ - "เชนเชพ, เชคเซ‡ เชฎเชฆเชฆ เช•เชฐเซ€, เช…เชจเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเชตเชพเชฎเชพเช‚, เชธเชนเชฟเชค."

เชชเชฐเช‚เชคเซ เชคเซ‡ เชเช• เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฒเช— เชตเชพเชฐเซเชคเชพ เช›เซ‡ ...

เชšเชพเชฒเซ เชฐเชนเซ€ เชถเช•เชพเชฏโ€ฆ

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹