เชเซเชฒเชพเชธเชฟเช เชชเซเชฐเชถเซเชจ เชเซ เชเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชคเซเชจเชพ DBA เช เชฅเชตเชพ เชตเซเชฏเชตเชธเชพเชฏ เชฎเชพเชฒเชฟเชเชจเซ เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชธเชฒเชพเชนเชเชพเชฐ เชชเชพเชธเซ เชฒเชพเชตเซ เชเซ เชคเซ เชฒเชเชญเช เชนเชเชฎเซเชถเชพ เชธเชฎเชพเชจ เชฒเชพเชเซ เชเซ: "เชตเชฟเชจเชเชคเชฟเช เชกเซเชเชพเชฌเซเช เชชเชฐ เชชเซเชฐเซเชฃ เชฅเชตเชพเชฎเชพเช เชเชเชฒเซ เชฒเชพเชเชฌเซ เชธเชฎเชฏ เชเซเชฎ เชฒเซ เชเซ?"
เชชเชฐเชเชชเชฐเชพเชเชค เชเชพเชฐเชฃเซเชจเซ เชธเชฎเซเชน:
- เชฌเชฟเชจเชเชพเชฐเซเชฏเชเซเชทเชฎ เช
เชฒเซเชเซเชฐเชฟเชงเชฎเชจเซ
เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเชเชฒเชพเช เชนเชเชพเชฐเซ เชฐเซเชเซเชฐเซเชกเซเชธ เชชเชฐ เชเซเชเชฒเชพเช CTE เชฎเชพเช เชเซเชกเชพเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซ เชเซ - เชเซเชจเชพ เชเชเชเชกเชพ
เชเซ เชเซเชทเซเชเชเชฎเชพเช เชกเซเชเชพเชจเซเช เชตเชพเชธเซเชคเชตเชฟเช เชตเชฟเชคเชฐเชฃ เชชเชนเซเชฒเชพเชฅเซ เช เชเซเชฒเซเชฒเซ เชตเชเชค เชตเชฟเชถเซเชฒเซเชทเชฃ เชฆเซเชตเชพเชฐเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒเชพ เชกเซเชเชพ เชเชฐเชคเชพ เชเชฃเซเช เช เชฒเช เชเซ - เชธเชเชธเชพเชงเชจเซ เชชเชฐ "เชชเซเชฒเช".
เช เชจเซ CPU เชจเซ เชธเชฎเชฐเซเชชเชฟเชค เชเชฎเซเชชเซเชฏเซเชเชฟเชเช เชถเชเซเชคเชฟ เชนเชตเซ เชชเซเชฐเชคเซ เชจเชฅเซ, เชเซเชเชพเชฌเชพเชเชเซเชธ เชฎเซเชฎเชฐเซ เชธเชคเชค เชชเชฎเซเชช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชฅเชตเชพ เชกเชฟเชธเซเช เชกเซเชเชพเชฌเซเชเชจเซ เชฌเชงเซ "เชเชเซเชเชพเช" เชธเชพเชฅเซ เชฐเชพเชเซ เชถเชเชคเซ เชจเชฅเซ - เช เชตเชฐเซเชงเชฟเชค เชธเซเชชเชฐเซเชงเชพเชคเซเชฎเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชฎเชพเชเชฅเซ
เช
เชจเซ เชเซ เชฌเซเชฒเซเชเซเชเชเซเชธเชจเซ เชชเชเชกเชตเชพ เช
เชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเซเช เชเซเชฌ เชฎเซเชถเซเชเซเชฒ เชเซ, เชคเซ เชชเชเซ เชเชชเชฃเชจเซ เชเชฐเซเชฐเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชฎเชพเชเซ เชชเซเชฐเชถเซเชจ เชฏเซเชเชจเชพ, เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเซเชณเชตเซ เชถเชเชพเชฏ เชเซ
เชชเชฐเชเชคเซ, เชธเชฎเชพเชจ เชฆเชธเซเชคเชพเชตเซเชเซเชฎเชพเช เชเชฃเชพเชตเซเชฏเชพ เชฎเซเชเชฌ,
"เชฏเซเชเชจเชพเชจเซ เชธเชฎเชเชตเซ เช เชเช เชเชณเชพ เชเซ, เช เชจเซ เชคเซเชฎเชพเช เชจเชฟเชชเซเชฃเชคเชพ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเซเชเซเชเชธ เช เชจเซเชญเชตเชจเซ เชเชฐเซเชฐ เชเซ..."
เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชฏเซเชเซเชฏ เชธเชพเชงเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชคเซ เชคเชฎเซ เชคเซเชจเชพ เชตเชฟเชจเชพ เชเชฐเซ เชถเชเซ เชเซ!
เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ? เชคเซเชจเชพ เชเซเชตเซเช เชเชเชเช:
Index Scan using pg_class_relname_nsp_index on pg_class (actual time=0.049..0.050 rows=1 loops=1)
Index Cond: (relname = $1)
Filter: (oid = $0)
Buffers: shared hit=4
InitPlan 1 (returns $0,$1)
-> Limit (actual time=0.019..0.020 rows=1 loops=1)
Buffers: shared hit=1
-> Seq Scan on pg_class pg_class_1 (actual time=0.015..0.015 rows=1 loops=1)
Filter: (relkind = 'r'::"char")
Rows Removed by Filter: 5
Buffers: shared hit=1
เช เชฅเชตเชพ เชเชจเซ เชเซเชฎ:
"Append (cost=868.60..878.95 rows=2 width=233) (actual time=0.024..0.144 rows=2 loops=1)"
" Buffers: shared hit=3"
" CTE cl"
" -> Seq Scan on pg_class (cost=0.00..868.60 rows=9972 width=537) (actual time=0.016..0.042 rows=101 loops=1)"
" Buffers: shared hit=3"
" -> Limit (cost=0.00..0.10 rows=1 width=233) (actual time=0.023..0.024 rows=1 loops=1)"
" Buffers: shared hit=1"
" -> CTE Scan on cl (cost=0.00..997.20 rows=9972 width=233) (actual time=0.021..0.021 rows=1 loops=1)"
" Buffers: shared hit=1"
" -> Limit (cost=10.00..10.10 rows=1 width=233) (actual time=0.117..0.118 rows=1 loops=1)"
" Buffers: shared hit=2"
" -> CTE Scan on cl cl_1 (cost=0.00..997.20 rows=9972 width=233) (actual time=0.001..0.104 rows=101 loops=1)"
" Buffers: shared hit=2"
"Planning Time: 0.634 ms"
"Execution Time: 0.248 ms"
เชชเชฐเชเชคเซ "เชถเซเชเชฎเชพเชเชฅเซ" เชเซเชเซเชธเซเชเชฎเชพเช เชฏเซเชเชจเชพ เชตเชพเชเชเชตเซ เชเซเชฌ เชฎเซเชถเซเชเซเชฒ เช เชจเซ เช เชธเซเชชเชทเซเช เชเซ:
- เชจเซเชกเชฎเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชพเชฏ เชเซ เชธเชฌเชเซเชฐเซ เชธเชเชธเชพเชงเชจเซ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชตเชพเชณเซ
เชเชเชฒเซ เชเซ, เชเซเช เชเซเชเซเชเชธ เชจเซเชกเชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเซเชเชฒเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ เชเซ, เช เชฅเชตเชพ เชเซเชฌเชฒเชฎเชพเชเชฅเซ เช เชตเชพเชเชเชจ เชกเชฟเชธเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฒเชพเชตเซเชฏเซ เชเซ เชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเซเชเช เชฐเซเชคเซ เชฌเซเชเชพเชฎเชพเชเชฅเซ เชเช เชฌเชพเชฆเชฌเชพเชเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. - เชจเซเชก เชธเชฎเชฏ เชเชฐเซเชฐเซ เชเซ เชฒเซเชชเซเชธ เชฆเซเชตเชพเชฐเชพ เชเซเชฃเชพเชเชพเชฐ เชเชฐเซ
เชนเชพ, เชฌเชพเชฆเชฌเชพเชเซ เช เชธเซเชฅเซ เชเชเชฟเชฒ เชเชพเชฎเชเซเชฐเซ เชจเชฅเซ เชเซ "เชฎเชพเชฅเชพเชฎเชพเช" เชฅเชตเซ เชเซเชเช - เชเซเชตเชเซ, เชเชเซเชเซเชเซเชฏเซเชถเชจเชจเซ เชธเชฎเชฏ เชจเซเชกเชจเชพ เชเช เช เชฎเชฒ เชฎเชพเชเซ เชธเชฐเซเชฐเชพเชถ เชคเชฐเซเชเซ เชธเซเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชคเซเชฎเชพเช เชธเซเชเชเชกเซ เชนเซเช เชถเชเซ เชเซ. - เชธเชพเชฐเซเช, เช เชจเซ เช เชฌเชงเซเช เชฎเชณเซเชจเซ เช เชฎเชจเซ เชฎเซเชเซเชฏ เชชเซเชฐเชถเซเชจเชจเซ เชเชตเชพเชฌ เชเชชเชคเชพ เช เชเชเชพเชตเซ เชเซ - เชคเซเชฅเซ เชเซเชฃ "เชธเซเชฅเซ เชจเชฌเชณเซ เชเชกเซ"?
เชเซเชฏเชพเชฐเซ เช เชฎเซ เช เชฎเชพเชฐเชพ เชเซเชเชฒเชพเช เชธเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เช เชฌเชงเซเช เชธเชฎเชเชพเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ, เชคเซเชฏเชพเชฐเซ เช เชฎเชจเซ เชธเชฎเชเชพเชฏเซเช เชเซ เชฌเชนเชพเชฐเชฅเซ เชคเซ เชเชเชเช เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ:
เช
เชจเซ เชคเซเชจเซ เช
เชฐเซเชฅ เช เชเซ เชเชชเชฃเชจเซ เชเชฐเซเชฐ เชเซ ...
เชเซเชฒ
เชคเซเชฎเชพเช เช
เชฎเซ เชคเชฎเชพเชฎ เชฎเซเชเซเชฏ เชฎเชฟเชเซเชจเชฟเชเซเชธ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ เชเซ เชฏเซเชเชจเชพ เช
เชจเซ เชตเชฟเชจเชเชคเซ เช
เชจเซเชธเชพเชฐ "เชเซเชฃ เชฆเซเชท เช
เชจเซ เชถเซเช เชเชฐเชตเซเช" เชธเชฎเชเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ. เชธเชพเชฐเซเช, เช
เชจเซ เชคเชฎเชพเชฐเชพ เช
เชจเซเชญเชตเชจเซ เชเช เชญเชพเช เชธเชฎเซเชฆเชพเชฏ เชธเชพเชฅเซ เชถเซเชฐ เชเชฐเซ.
เชฎเชณเซ เช
เชจเซ เชเชชเชฏเซเช เชเชฐเซ -
เชฏเซเชเชจเชพเชเชจเซ เชฆเซเชถเซเชฏเชคเชพ
เชเซเชฏเชพเชฐเซ เชคเซ เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชคเซเชฏเชพเชฐเซ เชถเซเช เชฏเซเชเชจเชพเชจเซ เชธเชฎเชเชตเซเช เชธเชฐเชณ เชเซ?
Seq Scan on pg_class (actual time=0.009..1.304 rows=6609 loops=1)
Buffers: shared hit=263
Planning Time: 0.108 ms
Execution Time: 1.800 ms
เชเชฐเซเชเชฐ เชจเชฅเซ.
เชชเชฃ เชเชจเซ เชเซเชฎ, เชธเชเชเซเชทเชฟเชชเซเชค เชธเซเชตเชฐเซเชชเชฎเชพเชเชเซเชฏเชพเชฐเซ เชฎเซเชเซเชฏ เชธเซเชเชเชพเชเชเซเชจเซ เช เชฒเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซ เชตเชงเซ เชธเซเชชเชทเซเช เชเซ:
เชชเชฐเชเชคเซ เชเซ เชฏเซเชเชจเชพ เชตเชงเซ เชเชเชฟเชฒ เชเซ, เชคเซ เชคเซ เชฌเชเชพเชตเชฎเชพเช เชเชตเชถเซ เชชเชฟเชเชพเชฐเซเช เชธเชฎเชฏ เชตเชฟเชคเชฐเชฃ เชเชพเชเช เซ เชฆเซเชตเชพเชฐเชพ:
เช เซเช เชเซ, เชธเซเชฅเซ เชฎเซเชถเซเชเซเชฒ เชตเชฟเชเชฒเซเชชเซ เชฎเชพเชเซ เชคเซ เชฎเชฆเชฆ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชคเชพเชตเชณเชฎเชพเช เชเซ เชชเซเชฐเชเชคเชฟ เชเชพเชฐเซเช:
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซเชฏเชพเช เชคเชฆเซเชฆเชจ เชฌเชฟเชจ-เชคเซเชเซเช เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช เชเซ เชเซเชฏเชพเชฐเซ เชฏเซเชเชจเชพเชฎเชพเช เชเช เชเชฐเชคเชพเช เชตเชงเซ เชตเชพเชธเซเชคเชตเชฟเช เชฎเซเชณ เชนเซเช เชถเชเซ เชเซ:
เชฎเชพเชณเชเชพเชเซเชฏ เชธเชเชเซเชคเซ
เช เซเช เชเซ, เชเซ เชฏเซเชเชจเชพเชจเซเช เชธเชเชชเซเชฐเซเชฃ เชฎเชพเชณเชเซเช เช เชจเซ เชคเซเชจเชพ เชซเซเชฒเซเชฒเซเช เชชเชนเซเชฒเซเชฅเซ เช เชจเชพเชเซเชฒเซ เชเซ เช เชจเซ เชฆเซเชถเซเชฏเชฎเชพเชจ เชเซ, เชคเซ เชถเชพ เชฎเชพเชเซ เชคเซเชจเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเซ เชชเซเชฐเชเชพเชถเชฟเชค เชจ เชเชฐเซ เช เชจเซ "เชฐเชถเชฟเชฏเชจ เชญเชพเชทเชพ" เชฎเชพเช เชธเชฎเชเชพเชตเซ?
เช เชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เชเชตเชพ เชเซเชเชฒเชพเช เชกเชเชจ เชญเชฒเชพเชฎเชฃ เชจเชฎเซเชจเชพเช เชเชเชคเซเชฐเชฟเชค เชเชฐเซเชฏเชพ เชเซ.
เชฒเชพเชเชจ-เชฌเชพเชฏ-เชฒเชพเชเชจ เชเซเชตเซเชฐเซ เชชเซเชฐเซเชซเชพเชเชฒเชฐ
เชนเชตเซ, เชเซ เชคเชฎเซ เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชฏเซเชเชจเชพ เชชเชฐ เชฎเซเชณ เชเซเชตเซเชฐเซ เชธเซเชชเชฐเชเชฎเซเชชเซเช เชเชฐเซ เชเซ, เชคเซ เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟเชเชค เชจเชฟเชตเซเชฆเชจ เชชเชฐ เชเซเชเชฒเซ เชธเชฎเชฏ เชตเชฟเชคเชพเชตเซเชฏเซ เชนเชคเซ - เชเชเชเช เชเชจเชพ เชเซเชตเซเช:
...เช
เชฅเชตเชพ เชเชจเชพ เชเซเชตเซเช เชชเชฃ:
เชตเชฟเชจเชเชคเชฟเชฎเชพเช เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชฌเชฆเชฒเซเชจเซ
เชเซ เชคเชฎเซ เชฒเซเชเชจเซ เชกเซเชเซเชเชฒ เชฒเชพเชเชจเชฎเชพเชเชฅเซ เชฎเชพเชคเซเชฐ เชชเซเชฒเชพเชจเชจเซ เชตเชฟเชจเชเชคเซ เช เชจเชนเซเช, เชชเชฐเชเชคเซ เชคเซเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชชเชฃ "เชเซเชกเซเชฏเชพ" เชเซ, เชคเซ เชคเชฎเซ เชคเซเชจเซ เชเซเชเชชเชฃ เชตเชฟเชเชฒเซเชชเซเชฎเชพเช เชเซเชชเชฟ เชเชฐเซ เชถเชเซ เชเซ:
- เชตเชฟเชจเชเชคเซเชฎเชพเช เชฎเซเชฒเซเชฏ เช
เชตเซเชเซ เชธเชพเชฅเซ
เชคเชฎเชพเชฐเชพ เชเชงเชพเชฐ เช เชจเซ เชตเชงเซ เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เชชเชฐ เชธเซเชงเชพ เช เชฎเชฒ เชฎเชพเชเซSELECT 'const', 'param'::text;
- PREPARE/EXECUTE เชฎเชพเชฐเชซเชคเซ เชฎเซเชฒเซเชฏ เช
เชตเซเชเซ เชธเชพเชฅเซ
เชถเซเชกเซเชฏเซเชฒเชฐเชจเชพ เชเชพเชฐเซเชฏเชจเซเช เช เชจเซเชเชฐเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเซเชฏเชพเชฐเซ เชชเซเชฐเชพเชฎเซเชเซเชฐเชฟเช เชญเชพเชเชจเซ เช เชตเชเชฃเซ เชถเชเชพเชฏ เชเซ - เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชฏเชพเชฐเซ เชชเชพเชฐเซเชเซเชถเชจ เชเชฐเซเชฒ เชเซเชทเซเชเชเซ เชชเชฐ เชเชพเชฎ เชเชฐเชตเซเชDEALLOCATE ALL; PREPARE q(text) AS SELECT 'const', $1::text; EXECUTE q('param'::text);
เชฏเซเชเชจเชพเชเชจเซเช เชเชฐเซเชเชพเชเชต
เชชเซเชธเซเช เชเชฐเซ, เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซ, เชธเชนเชเชฐเซเชฎเซเช เชธเชพเชฅเซ เชถเซเชฐ เชเชฐเซ! เชฏเซเชเชจเชพเช เชเชฐเซเชเชพเชเชตเชฎเชพเช เชฐเชนเซเชถเซ, เช
เชจเซ เชคเชฎเซ เชชเชเซเชฅเซ เชคเซเชฎเชจเชพ เชชเชฐ เชชเชพเชเชพ เชเชตเซ เชถเชเซ เชเซ:
เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชเชเซเชเชคเชพ เชจเชฅเซ เชเซ เช เชจเซเชฏ เชฒเซเชเซ เชคเชฎเชพเชฐเซ เชชเซเชฒเชพเชจ เชเซเช, เชคเซ "เชเชฐเซเชเชพเชเชตเชฎเชพเช เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชถเซ เชจเชนเซเช" เชฌเซเชเซเชธเชจเซ เชเซเช เชเชฐเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช.
เชจเซเชเซเชจเชพ เชฒเซเชเซเชฎเชพเช เชนเซเช เชฏเซเชเชจเชพเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชคเซ เชตเชเชคเซ เชเชญเซ เชฅเชคเซ เชฎเซเชถเซเชเซเชฒเซเช เช
เชจเซ เชจเชฟเชฐเซเชฃเชฏเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถ.
เชธเซเชฐเซเชธ: www.habr.com