15670430创建于 2020年12月28日历史提交
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator2 -c "autovacuum = on" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator1 -c "autovacuum = on" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator3 -c "autovacuum = on" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator2 -c "autovacuum_mode = mix" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator1 -c "autovacuum_mode = mix" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator3 -c "autovacuum_mode = mix" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator2 -c "autovacuum_naptime = 2s" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator1 -c "autovacuum_naptime = 2s" >/dev/null 2>&1
\! @abs_bindir@/gs_guc reload -Z coordinator -D @abs_srcdir@/tmp_check/coordinator3 -c "autovacuum_naptime = 2s" >/dev/null 2>&1


ALTER NODE coordinator2 WITH (nodeis_central=false);
ALTER NODE coordinator1 WITH (nodeis_central=true);
SHOW autovacuum;
SHOW autovacuum_mode;
SHOW autovacuum_naptime;

CREATE OR REPLACE PROCEDURE sleep_loop_autoanalyze_count(i IN INTEGER, tablename IN TEXT, sleep IN FLOAT)
AS
BEGIN
WHILE ((select * from pg_stat_get_autoanalyze_count(tablename::regclass)) < i) LOOP
PERFORM pg_sleep(sleep);
PERFORM pg_stat_clear_snapshot();
END LOOP;
END;
/

CREATE OR REPLACE PROCEDURE sleep_loop_autovacuum_count(i IN INTEGER, tablename IN TEXT, sleep IN FLOAT)
AS
BEGIN
WHILE ((select * from pg_stat_get_autovacuum_count(tablename::regclass)) < i) LOOP
PERFORM pg_sleep(sleep);
PERFORM pg_stat_clear_snapshot();
END LOOP;
END;
/

/*column+unpartition table*/
create table t1 
(
    sk int NOT NULL,
    a int,
    b int
)
WITH (orientation=column) distribute by hash(sk);

/*row+unpartition table*/
create table t2 
(
    sk int NOT NULL,
    a int,
    b int
)
WITH (orientation=row) distribute by hash(sk);

/*column+partition table*/
create table t1_part 
(
    sk int NOT NULL,
    a int,
    b int
)
WITH (orientation=column)
distribute by hash(sk)
PARTITION BY RANGE (sk) 
(
    PARTITION p0 VALUES LESS THAN (20),
    PARTITION p1 VALUES LESS THAN (40),
    PARTITION p2 VALUES LESS THAN (60),
    PARTITION p3 VALUES LESS THAN (110)
);

/*row+partition table*/
create table t2_part
(
    sk int NOT NULL,
    a int,
    b int
)
WITH (orientation=row)
distribute by hash(sk)
PARTITION BY RANGE (sk)
(
    PARTITION p0 VALUES LESS THAN (20),
    PARTITION p1 VALUES LESS THAN (40),
    PARTITION p2 VALUES LESS THAN (60),
    PARTITION p3 VALUES LESS THAN (110)
);