~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to src/test/regress/expected/stats.out

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- Test Statistics Collector
 
3
--
 
4
-- Must be run after tenk2 has been created (by create_table),
 
5
-- populated (by create_misc) and indexed (by create_index).
 
6
--
 
7
-- conditio sine qua non
 
8
SHOW stats_start_collector;  -- must be on
 
9
 stats_start_collector 
 
10
-----------------------
 
11
 on
 
12
(1 row)
 
13
 
 
14
-- save counters
 
15
CREATE TEMP TABLE prevstats AS
 
16
SELECT t.seq_scan, t.seq_tup_read, t.idx_scan, t.idx_tup_fetch,
 
17
       (b.heap_blks_read + b.heap_blks_hit) AS heap_blks,
 
18
       (b.idx_blks_read + b.idx_blks_hit) AS idx_blks
 
19
  FROM pg_catalog.pg_stat_user_tables AS t,
 
20
       pg_catalog.pg_statio_user_tables AS b
 
21
 WHERE t.relname='tenk2' AND b.relname='tenk2';
 
22
-- enable statistics
 
23
SET stats_block_level = on;
 
24
SET stats_row_level = on;
 
25
-- helper function
 
26
CREATE FUNCTION sleep(interval) RETURNS integer AS '
 
27
DECLARE
 
28
  endtime timestamp;
 
29
BEGIN
 
30
  endtime := timeofday()::timestamp + $1;
 
31
  WHILE timeofday()::timestamp < endtime LOOP
 
32
  END LOOP;
 
33
  RETURN 0;
 
34
END;
 
35
' LANGUAGE 'plpgsql';
 
36
-- do something
 
37
SELECT count(*) FROM tenk2;
 
38
 count 
 
39
-------
 
40
 10000
 
41
(1 row)
 
42
 
 
43
SELECT count(*) FROM tenk2 WHERE unique1 = 1;
 
44
 count 
 
45
-------
 
46
     1
 
47
(1 row)
 
48
 
 
49
-- let stats collector catch up
 
50
SELECT sleep('0:0:2'::interval);
 
51
 sleep 
 
52
-------
 
53
     0
 
54
(1 row)
 
55
 
 
56
-- check effects
 
57
SELECT st.seq_scan >= pr.seq_scan + 1,
 
58
       st.seq_tup_read >= pr.seq_tup_read + cl.reltuples,
 
59
       st.idx_scan >= pr.idx_scan + 1,
 
60
       st.idx_tup_fetch >= pr.idx_tup_fetch + 1
 
61
  FROM pg_stat_user_tables AS st, pg_class AS cl, prevstats AS pr
 
62
 WHERE st.relname='tenk2' AND cl.relname='tenk2';
 
63
 ?column? | ?column? | ?column? | ?column? 
 
64
----------+----------+----------+----------
 
65
 t        | t        | t        | t
 
66
(1 row)
 
67
 
 
68
SELECT st.heap_blks_read + st.heap_blks_hit >= pr.heap_blks + cl.relpages,
 
69
       st.idx_blks_read + st.idx_blks_hit >= pr.idx_blks + 1
 
70
  FROM pg_statio_user_tables AS st, pg_class AS cl, prevstats AS pr
 
71
 WHERE st.relname='tenk2' AND cl.relname='tenk2';
 
72
 ?column? | ?column? 
 
73
----------+----------
 
74
 t        | t
 
75
(1 row)
 
76
 
 
77
-- clean up
 
78
DROP FUNCTION sleep(interval);
 
79
-- End of Stats Test