ื•ื•ืึธืก ื“ืขืจืงืœืขืจืŸ ืื™ื– ืฉื˜ื™ืœ ื•ื•ืขื’ืŸ ืื•ืŸ ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืขืก ื’ืขืจืขื“ื˜

ื“ื™ ืงืœืึทืกื™ืฉ ืงืฉื™ื ืึทื– ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื‘ืจืขื ื’ื˜ ืฆื• ื–ื™ื™ืŸ ื“ื‘ืึท ืึธื“ืขืจ ืึท ื’ืขืฉืขืคื˜ ื‘ืึทื–ื™ืฆืขืจ ื‘ืจืขื ื’ื˜ ืฆื• ืึท PostgreSQL ืงืึธื ืกื•ืœื˜ืึทื ื˜ ื›ึผืžืขื˜ ืฉื˜ืขื ื“ื™ืง ืกืึธื•ื ื“ืก ื“ื™ ื–ืขืœื‘ืข: "ืคืืจื•ื•ืืก ื ืขืžืขืŸ ืจื™ืงื•ื•ืขืก ืึทื–ื•ื™ ืœืึทื ื’ ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ืื•ื™ืฃ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก?"

ื˜ืจืึทื“ื™ืฆื™ืึธื ืขืœ ื’ืึทื ื’ ืคื•ืŸ ืกื™ื‘ื•ืช:

  • ื‘ืึทื˜ืœืึธื ื™ืฉ ืึทืœื’ืขืจื™ื“ืึทื
    ื•ื•ืขืŸ ืื™ืจ ื‘ืึทืฉืœื™ืกืŸ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืขื˜ืœืขื›ืข CTEs ืื™ื‘ืขืจ ืึท ืคึผืึธืจ ืคื•ืŸ ื˜ืขื ืก ืคื•ืŸ ื˜ื•ื™ื–ื ื˜ืขืจ ืคื•ืŸ ืจืขืงืึธืจื“ืก
  • ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ืกื˜ืึทื˜ื™ืกื˜ื™ืง
    ืื•ื™ื‘ ื“ื™ ืคืึทืงื˜ื™ืฉ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื˜ื™ืฉ ืื™ื– ืฉื•ื™ืŸ ื–ื™ื™ืขืจ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืœืขืฆื˜ืข ืžืึธืœ ื’ืขื–ืืžืœื˜ ื“ื•ืจืš ANALYZE
  • "ืฆืึทืคึผืŸ" ืื•ื™ืฃ ืจืขืกื•ืจืกืŸ
    ืื•ืŸ ืขืก ืื™ื– ื ื™ื˜ ืžืขืจ ื’ืขื ื•ื’ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืžืึทื›ื˜ ืคื•ืŸ ื“ื™ ืงืคึผื•, ื’ื™ื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื–ื›ึผืจื•ืŸ ื–ืขื ืขืŸ ืงืขืกื™ื™ื“ืขืจ ืคึผืึทืžืคึผื˜, ืึธื“ืขืจ ื“ืขืจ ื“ื™ืกืง ืงืขืŸ ื ื™ืฉื˜ ื”ืึทืœื˜ืŸ ืึทืจื•ื™ืฃ ืžื™ื˜ ืึทืœืข ื“ื™ "ื•ื•ื™ืœื–" ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก
  • ื‘ืœืึทืงื™ื ื’ ืคื•ืŸ ืงืึทืžืคึผื™ื˜ื™ื ื’ ืคึผืจืึทืกืขืกืึทื–

ืื•ืŸ ืื•ื™ื‘ ื‘ืœืึทืงื™ื ื’ื– ื–ืขื ืขืŸ ื’ืึทื ืฅ ืฉื•ื•ืขืจ ืฆื• ื›ืึทืคึผืŸ ืื•ืŸ ืึทื ืึทืœื™ื™ื–, ื“ืขืžืึธืœื˜ ืคึฟืึทืจ ืึทืœืฅ ืึทื ื“ืขืจืฉ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึธื ืคึฟืจืขื’ ืคึผืœืึทืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืงื•ืžืขืŸ ื ื™ืฆืŸ ื“ืขืจืงืœืขืจืŸ ืึธืคึผืขืจืึทื˜ืึธืจ (ืขืก ืื™ื– ื‘ืขืกืขืจ, ืคื•ืŸ ืงื•ืจืก, ืฆื• ื’ืœื™ื™ืš ื“ืขืจืงืœืขืจืŸ (ืึทื ืึทืœื™ื–ื™ืจืŸ, ื‘ืึทืคืขืจืก) ...) ืึธื“ืขืจ auto_explain ืžืึธื“ื•ืœืข.

ืึธื‘ืขืจ, ื•ื•ื™ ืกื˜ื™ื™ื˜ื™ื“ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ,

"ืคึฟืึทืจืฉื˜ืึทื ืขืŸ ืึท ืคึผืœืึทืŸ ืื™ื– ืึท ืงื•ื ืกื˜, ืื•ืŸ ืฆื• ื‘ืขืœ ืขืก ืจื™ืงื•ื•ื™ื™ืขืจื– ืึท ื–ื™ื›ืขืจ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืขืจืคืึทืจื•ื ื’ ..."

ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืึธืŸ ืขืก ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ื™ ืจืขื›ื˜ ื’ืขืฆื™ื™ึทื’!

ื•ื•ื™ ืึทื–ื•ื™ ืงื•ืงื˜ ืึท ืึธื ืคึฟืจืขื’ ืคึผืœืึทืŸ ื˜ื™ืคึผื™ืงืœื™? ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก:

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"

ืึธื‘ืขืจ ืœื™ื™ืขื ืขืŸ ื“ืขื ืคึผืœืึทืŸ ืื™ืŸ ื˜ืขืงืกื˜ "ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜" ืื™ื– ื–ื™ื™ืขืจ ืฉื•ื•ืขืจ ืื•ืŸ ื•ืžืงืœืึธืจ:

  • ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื ืึธื“ืข ืกืึทื›ืึทืงืœ ื“ื•ืจืš ืกื•ื‘ื˜ืจื™ืข ืจืขืกื•ืจืกืŸ
    ื“ืึธืก ืื™ื–, ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ืคื™ืœ ืฆื™ื™ื˜ ืขืก ื”ืึธื˜ ื’ืขื ื•ืžืขืŸ ืฆื• ื•ื™ืกืคื™ืจืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื ืึธื“ืข, ืึธื“ืขืจ ื•ื•ื™ ืคื™ืœ ืคึผื•ื ืงื˜ ื“ืึธืก ืœื™ื™ืขื ืขืŸ ืคื•ืŸ ื“ื™ ื˜ื™ืฉ ื’ืขื‘ืจืื›ื˜ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื“ื™ืกืง, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขืคืขืก ืึทืจืึธืคึผืจืขื›ืขื ืขืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืื ื“ืขืจืข
  • ื ืึธื“ืข ืฆื™ื™ื˜ ืื™ื– ื“ืืจืฃ ืžืขืจืŸ ื“ื•ืจืš ืœื•ืคึผืก
    ื™ืึธ, ื›ื™ืกืขืจ ืื™ื– ื ื™ืฉื˜ ื“ื™ ืžืขืจืกื˜ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืึธืคึผืขืจืึทืฆื™ืข ื•ื•ืึธืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ "ืื™ืŸ ื“ื™ ืงืึธืคึผ" - ื ืึธืš ืึทืœืข, ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜ ืื™ื– ืื ื’ืขื•ื•ื™ื–ืŸ ื•ื•ื™ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืคึฟืึทืจ ืื™ื™ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ืึท ื ืึธื“ืข, ืื•ืŸ ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื”ื•ื ื“ืขืจื˜ืขืจ ืคื•ืŸ ื–ื™ื™
  • ื ื•, ืื•ืŸ ื“ืึธืก ืึทืœืฅ ืฆื•ื–ืึทืžืขืŸ ืคึผืจื™ื•ื•ืขื ืฅ ืื•ื ื“ื– ืฆื• ืขื ื˜ืคึฟืขืจืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืฉื™ื - ืึทื–ื•ื™ ื•ื•ืขืจ "ื“ื™ ืฉื•ื•ืึทื›ืกื˜ืข ืœื™ื ืง"?

ื•ื•ืขืŸ ืžื™ืจ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื“ืขืจืงืœืขืจืŸ ืึทืœืข ื“ืขื ืฆื• ืขื˜ืœืขื›ืข ื”ื•ื ื“ืขืจื˜ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก, ืžื™ืจ ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ืคื•ืŸ ื“ื™ ืึทืจื•ื™ืก ืขืก ืงื•ืงื˜ ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก:

ื•ื•ืึธืก ื“ืขืจืงืœืขืจืŸ ืื™ื– ืฉื˜ื™ืœ ื•ื•ืขื’ืŸ ืื•ืŸ ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืขืก ื’ืขืจืขื“ื˜

ืื•ืŸ ืึทื– ืžื™ื˜ืœ ืžื™ืจ ื“ืึทืจืคึฟืŸ ...

ืงื™ื™ืœืข

ืื™ืŸ ืขืก ืžื™ืจ ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื–ืึทืžืœืขืŸ ืึทืœืข ื“ื™ ืฉืœื™ืกืœ ืžืึทืงืึทื ื™ืงืก ื•ื•ืึธืก ื”ืขืœืคึฟืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ "ื•ื•ืขืจ ืื™ื– ืฆื• ื‘ืึทืฉื•ืœื“ื™ืงืŸ ืื•ืŸ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ" ืœื•ื™ื˜ ื“ืขื ืคึผืœืึทืŸ ืื•ืŸ ื‘ืขื˜ืŸ. ื ื•, ืื•ืŸ ื˜ื™ื™ืœืŸ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ื™ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืžื™ื˜ ื“ื™ ืงื”ืœ.
ื˜ืจืขืคืŸ ืื•ืŸ ื ื•ืฆืŸ - explain.tensor.ru

ื•ื•ื™ื–ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ืคึผืœืึทื ื–

ืื™ื– ืขืก ื’ืจื™ื ื’ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ืขื ืคึผืœืึทืŸ ื•ื•ืขืŸ ืขืก ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก?

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);
    

ืืจื›ื™ื•ื• ืคื•ืŸ ืคืœืขื ืขืจ

ืคึผืึทืคึผ, ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ, ื˜ื™ื™ืœืŸ ืžื™ื˜ ื—ื‘ืจื™ื! ื“ื™ ืคึผืœืึทื ื– ื•ื•ืขืœืŸ ื‘ืœื™ื™ื‘ืŸ ืึทืจื˜ืฉื™ื•ื•ืขื“ ืื•ืŸ ืื™ืจ ืงืขื ืขืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื–ื™ื™ ืฉืคึผืขื˜ืขืจ: explain.tensor.ru/archive

ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื•ื•ืขืœืŸ ืึทื– ืื ื“ืขืจืข ื–ืึธืœ ื–ืขืŸ ื“ื™ื™ืŸ ืคึผืœืึทืŸ, ื˜ืึธืŸ ื ื™ื˜ ืคืึทืจื’ืขืกืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืงืขืกื˜ืœ "ื˜ืึธืŸ ื ื™ื˜ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื™ืŸ ืึทืจืงื™ื™ื•ื•".

ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขืœ ืื™ืš ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ ืื•ืŸ ื“ื™ืกื™ื–ืฉืึทื ื– ื•ื•ืึธืก ืฉื˜ื™ื™ืขืŸ ื•ื•ืขืŸ ืึทื ืึทืœื™ื™ื–ื™ื ื’ ืึท ืคึผืœืึทืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’