最終更新日: 2026-08-25
TOP(About this memo)) > 一覧(RDB) > コマンド(PostgreSQL)
PREPARE fooplan (int, text, bool, numeric) AS
INSERT INTO foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);
select * from pg_prepared_statements;
ただし、現在接続しているセッションしか見ることはできない。
DEALLOCATE 〜
DEALLOCATE ALL で全部のプリペアド文が解除される(?)。DISCARD 〜
DISCARD PLANS でもよさそう(?)。preparedStatementCacheQueries=0 とするとキャッシュがなくなる。ただし、パフォーマンス的に0にするのはあまりよくない(IMO)。
psql -U postgres -d データベース名
\dt;
\d users;
ANALYZE を使うと処理も実際に実行されるので注意。
EXPLAIN (analyze true, format json) select * from users WHERE uid = 'sample_uid_a';
EXPLAIN (analyze true, format json) insert into users (uid) values('sample_uid_b');
EXPLAIN (analyze true, format json) update users set uid = 'sample_uid_c' WHERE uid = 'sample_uid_a';