EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เด’เดฐเต เดกเดตเดฒเดชเตเดชเตผ เดคเดจเตเดฑเต† DBA เดฏเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดตเดฐเตเดจเตเดจ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดฌเดฟเดธเดฟเดจเดธเตเดธเต เด‰เดŸเดฎ เด’เดฐเต PostgreSQL เด•เตบเดธเตพเดŸเตเดŸเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดตเดฐเตเดจเตเดจ เด•เตเดฒเดพเดธเดฟเด•เต เดšเต‹เดฆเตเดฏเด‚ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด’เดฐเตเดชเต‹เดฒเต†เดฏเดพเดฃเต: "เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เด‡เดคเตเดฐเดฏเตเด‚ เดธเดฎเดฏเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเดคเต?"

เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เด•เดพเดฐเดฃเด™เตเด™เดณเตเดŸเต† เด•เต‚เดŸเตเดŸเด‚:

  • เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดฒเตเดฒเดพเดคเตเดค เด…เตฝเด—เต‹เดฐเดฟเดคเด‚
    เดชเดคเดฟเดจเดพเดฏเดฟเดฐเด•เตเด•เดฃเด•เตเด•เดฟเดจเต เดฑเต†เด•เตเด•เต‹เดกเตเด•เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ CTE-เด•เดณเดฟเตฝ เดšเต‡เดฐเดพเตป เดจเดฟเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ
  • เด…เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ
    เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเดคเดฐเดฃเด‚ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด•เดดเดฟเดžเตเดž เดคเดตเดฃ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดคเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดณเดฐเต† เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ
  • เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ "เดชเตเดฒเด—เต"
    เด•เต‚เดŸเดพเดคเต† เดธเดฟเดชเดฟเดฏเตเดตเดฟเดจเต เดตเต‡เดฃเตเดŸเดคเตเดฐ เดธเดฎเตผเดชเตเดชเดฟเดค เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดชเดตเตผ เด‡เดฒเตเดฒ, เดœเดฟเด—เดพเดฌเตˆเดฑเตเดฑเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดชเดฎเตเดชเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ "เด†เด—เตเดฐเดนเด™เตเด™เดณเตเด‚" เดกเดฟเดธเตเด•เดฟเดจเต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.
  • เดคเดŸเดฏเตเดจเตเดจเต เดฎเดคเตเดธเดฐ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต

เดคเดŸเดฏเดฒเตเด•เตพ เดชเดฟเดŸเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเด‚ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต เด…เดจเตเดตเต‡เดทเดฃ เดชเดฆเตเดงเดคเดฟ, เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเดญเดฟเด•เตเด•เตเด‚ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเด• (เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‰เดŸเดจเดŸเดฟ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต (เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเด•, เดฌเดซเดฑเตเด•เตพ) ...) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 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

เด…เดฒเตเดฒ.

เดŽเดจเตเดจเดพเตฝ เด‡เดคเตเดชเต‹เดฒเต†, เดธเด‚เด•เตเดทเดฟเดชเตเดค เดฐเต‚เดชเดคเตเดคเดฟเตฝเดชเตเดฐเดงเดพเดจ เดธเต‚เดšเด•เด™เตเด™เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด‚:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เดŽเดจเตเดจเดพเตฝ เดชเดฆเตเดงเดคเดฟ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดตเตป เดฐเด•เตเดทเดพเดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเดฐเตเด‚ เดชเต€เดšเตเดšเดพเตผเดŸเตเดŸเต เดธเดฎเดฏ เดตเดฟเดคเดฐเดฃเด‚ เดจเต‹เดกเตเด•เตพ เดตเดดเดฟ:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เดถเดฐเดฟ, เดเดฑเตเดฑเดตเตเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด“เดชเตเดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดตเตป เดธเดนเดพเดฏเดฟเด•เตเด•เดพเตป เดคเดฟเดฐเด•เตเด•เดฟเดฒเดพเดฃเต เดชเตเดฐเต‹เด—เดคเดฟ เดšเดพเตผเดŸเตเดŸเต:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดชเตเดฒเดพเดจเดฟเดจเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฏเดฅเดพเตผเดคเตเดฅ เดฑเต‚เดŸเตเดŸเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเดฎเตเดชเต‹เตพ เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒเดพเดคเตเดค เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เด˜เดŸเดจเดพเดชเดฐเดฎเดพเดฏ เดธเต‚เดšเดจเด•เตพ

เดถเดฐเดฟ, เดชเตเดฒเดพเดจเดฟเดจเตเดฑเต† เดฎเตเดดเตเดตเตป เด˜เดŸเดจเดฏเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดตเต‡เดฆเดจเดพเดœเดจเด•เดฎเดพเดฏ เดชเดพเดŸเตเด•เดณเตเด‚ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดจเดฟเดฐเดคเตเดคเตเด•เดฏเตเด‚ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเดพเตฝ, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด…เดต เดกเดตเดฒเดชเตเดชเตผเด•เตเด•เต เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดคเต "เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเตฝ" เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดฐเตเดคเต?

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚เด…เดคเตเดคเดฐเด‚ เดฐเดฃเตเดŸเต เดกเดธเตป เดถเตเดชเดพเตผเดถ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดถเต‡เด–เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดฒเตˆเตป-เดฌเตˆ-เดฒเตˆเตป เด…เดจเตเดตเต‡เดทเดฃ เดชเตเดฐเตŠเดซเตˆเดฒเตผ

เด‡เดชเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดฏเดฅเดพเตผเดคเตเดฅ เดšเต‹เดฆเตเดฏเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดค เดชเตเดฒเดพเดจเดฟเดฒเต‡เด•เตเด•เต เดธเต‚เดชเตเดชเตผเด‡เดฎเตเดชเต‹เดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด“เดฐเต‹ เดตเตเดฏเด•เตเดคเดฟเด—เดค เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเดฟเดฒเตเด‚ เดŽเดคเตเดฐ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ - เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

... เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดคเตเดชเต‹เดฒเต†:

EXPLAIN เดŽเดจเตเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดจเดฟเดถเดฌเตเดฆเดค เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเต เดŽเด™เตเด™เดจเต† เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเด‚

เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฟเด™เตเด™เตพ เดชเตเดฒเดพเดจเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดฒเต‹เด—เดฟเดจเตเดฑเต† DETAIL เดฒเตˆเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดคเดฟเดจเตเดฑเต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ "เด…เดฑเตเดฑเดพเดšเตเดšเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ", เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด“เดชเตเดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเดฟเตฝ เดชเด•เตผเดคเตเดคเดพเดจเดพเด•เตเด‚:

  • เดšเต‹เดฆเตเดฏเดคเตเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เตเดจเตเดจเดคเต
    เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดŸเดฟเดคเตเดคเดฑเดฏเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเตŠเดซเตˆเดฒเดฟเด™เตเด™เดฟเดจเตเด‚

    SELECT 'const', 'param'::text;
  • PREPARE/EXECUTE เดตเดดเดฟ เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•
    เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต† เดœเต‹เดฒเดฟ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเตป, เดชเดพเดฐเดพเดฎเต†เดŸเตเดฐเดฟเด•เต เดญเดพเด—เด‚ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดฎเตเดชเต‹เตพ - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดพเตผเดŸเตเดŸเต€เดทเตป เดšเต†เดฏเตเดค เดชเดŸเตเดŸเดฟเด•เด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ

    DEALLOCATE ALL;
    PREPARE q(text) AS SELECT 'const', $1::text;
    EXECUTE q('param'::text);
    

เดชเดฆเตเดงเดคเดฟเด•เดณเตเดŸเต† เด†เตผเด•เตเด•เตˆเดตเต

เด’เดŸเตเดŸเดฟเด•เตเด•เตเด•, เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเด•, เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เดฐเตเดฎเดพเดฏเดฟ เดชเด™เตเด•เดฟเดŸเตเด•! เดชเตเดฒเดพเดจเตเด•เตพ เด†เตผเด•เตเด•เตˆเดตเตเดšเต†เดฏเตโ€Œเดคเดคเดพเดฏเดฟ เดคเตเดŸเดฐเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดฟเดจเตเดจเต€เดŸเต เด…เดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เดพเด‚: เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเด•.tensor.ru/archive

เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฒเดพเตป เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผ เด•เดพเดฃเดฐเตเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต†เด™เตเด•เดฟเตฝ, "เด†เตผเด•เตเด•เตˆเดตเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดฐเตเดคเต" เดŽเดจเตเดจ เดฌเต‹เด•เตโ€Œเดธเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต.

เด’เดฐเต เดชเตเดฒเดพเตป เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‰เดฃเตเดŸเดพเด•เตเดจเตเดจ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เดณเต†เดฏเตเด‚ เดคเต€เดฐเตเดฎเดพเดจเด™เตเด™เดณเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฒเต‡เด–เดจเด™เตเด™เดณเดฟเตฝ เดžเดพเตป เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•