āĻāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ¤āĻžāĻ° DBA āĻŦāĻž āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻŽāĻžāĻ˛āĻŋāĻ āĻāĻāĻāĻ¨ PostgreSQL āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻĻāĻžāĻ¤āĻžāĻ° āĻāĻžāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸āĻž āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻĒā§āĻ°āĻļā§āĻ¨āĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻ āĻļā§āĻ¨āĻžāĻ¯āĻŧ: "āĻā§āĻ¨ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĄā§āĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¤ā§ āĻāĻ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧ?"
āĻāĻžāĻ°āĻŖā§āĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻ¸ā§āĻ:
- āĻ
āĻĻāĻā§āĻˇ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ
āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻ¯āĻŧā§āĻ āĻšāĻžāĻāĻžāĻ° āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻžāĻ§āĻŋāĻ 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