6. デモ
●
テーブル作成
CREATE TABLE test (i int, j int);
CREATE INDEX test_idx ON test(i);
-- i=1のレコードを1万件格納
INSERT INTO test VALUES (1, generate_series(1, 10000));
-- i=2〜10のレコードを1件ずつ格納
INSERT INTO test VALUES (generate_series(2, 10), 0);
VACUUM ANALYZE test;
7. デモ
● PREPARE
PREPARE hoge AS SELECT * FROM test WHERE i = $1;
●
EXECUTEを5回実行
EXPLAIN ANALYZE EXECUTE hoge(1);
EXPLAIN ANALYZE EXECUTE hoge(1);
EXPLAIN ANALYZE EXECUTE hoge(1);
EXPLAIN ANALYZE EXECUTE hoge(1);
EXPLAIN ANALYZE EXECUTE hoge(1);
QUERY PLAN
--------------------------------------------------------------------------------------------------------
Seq Scan on test (cost=0.00..170.11 rows=10000 width=8) (actual time=0.020..2.639
rows=10000 loops=1)
Filter: (i = 1)
Rows Removed by Filter: 9
Planning time: 0.171 ms
Execution time: 3.298 ms
(5 rows)
8. デモ
●
6回目以降のEXECUTE
EXPLAIN ANALYZE EXECUTE hoge(1);
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------
-
Index Scan using test_idx on test (cost=0.29..41.80 rows=1001 width=8) (actual
time=0.083..10.003 rows=10000 loops=1)
Index Cond: (i = $1)
Planning time: 0.222 ms
Execution time: 11.131 ms
(4 rows)