diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index b3b65f5f0d..5545038915 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -1010,7 +1010,8 @@ SET ENABLE_SEQSCAN TO OFF; - This feature is disabled by default. To enable it, set the + This feature is disabled by default for manually issued + VACUUM commands. To enable it, set the vacuum_cost_delay variable to a nonzero value. @@ -1033,6 +1034,13 @@ SET ENABLE_SEQSCAN TO OFF; not a multiple of 10 might have the same results as setting it to the next higher multiple of 10. + + + When using cost-based vacuuming, appropriate values for + vacuum_cost_delay are usually quite small, perhaps + 10 or 20 milliseconds. Adjusting vacuum's resource consumption + is best done by changing the other vacuum cost parameters. + diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c index 548c0b00de..0060be6a02 100644 --- a/src/backend/access/common/reloptions.c +++ b/src/backend/access/common/reloptions.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.21 2009/02/09 20:57:59 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.22 2009/02/28 00:10:51 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -116,7 +116,7 @@ static relopt_int intRelOpts[] = "Vacuum cost delay in milliseconds, for autovacuum", RELOPT_KIND_HEAP }, - 20, 0, 1000 + 20, 0, 100 }, { { diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 40b087a8f3..5411840b2a 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.495 2009/01/21 09:28:26 mha Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.496 2009/02/28 00:10:51 tgl Exp $ * *-------------------------------------------------------------------- */ @@ -1467,7 +1467,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_MS }, &VacuumCostDelay, - 0, 0, 1000, NULL, NULL + 0, 0, 100, NULL, NULL }, { @@ -1477,7 +1477,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_MS }, &autovacuum_vac_cost_delay, - 20, -1, 1000, NULL, NULL + 20, -1, 100, NULL, NULL }, { diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index a874b4541d..f3aaf818ad 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -119,7 +119,7 @@ # - Cost-Based Vacuum Delay - -#vacuum_cost_delay = 0 # 0-1000 milliseconds +#vacuum_cost_delay = 0 # 0-100 milliseconds #vacuum_cost_page_hit = 1 # 0-10000 credits #vacuum_cost_page_miss = 10 # 0-10000 credits #vacuum_cost_page_dirty = 20 # 0-10000 credits diff --git a/src/test/regress/expected/guc.out b/src/test/regress/expected/guc.out index 2e6056b376..a580daa089 100644 --- a/src/test/regress/expected/guc.out +++ b/src/test/regress/expected/guc.out @@ -7,12 +7,12 @@ SHOW datestyle; (1 row) -- SET to some nondefault value -SET vacuum_cost_delay TO 400; +SET vacuum_cost_delay TO 40; SET datestyle = 'ISO, YMD'; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -28,11 +28,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) -- SET LOCAL has no effect outside of a transaction -SET LOCAL vacuum_cost_delay TO 500; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SET LOCAL datestyle = 'SQL'; @@ -50,11 +50,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET LOCAL within a transaction that commits BEGIN; -SET LOCAL vacuum_cost_delay TO 500; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 500ms + 50ms (1 row) SET LOCAL datestyle = 'SQL'; @@ -74,7 +74,7 @@ COMMIT; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -91,11 +91,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET should be reverted after ROLLBACK BEGIN; -SET vacuum_cost_delay TO 600; +SET vacuum_cost_delay TO 60; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 600ms + 60ms (1 row) SET datestyle = 'German'; @@ -115,7 +115,7 @@ ROLLBACK; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -132,7 +132,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- Some tests with subtransactions BEGIN; -SET vacuum_cost_delay TO 700; +SET vacuum_cost_delay TO 70; SET datestyle = 'MDY'; SHOW datestyle; DateStyle @@ -147,11 +147,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) SAVEPOINT first_sp; -SET vacuum_cost_delay TO 800; +SET vacuum_cost_delay TO 80; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 800ms + 80ms (1 row) SET datestyle = 'German, DMY'; @@ -181,7 +181,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) SAVEPOINT second_sp; -SET vacuum_cost_delay TO 900; +SET vacuum_cost_delay TO 90; SET datestyle = 'SQL, YMD'; SHOW datestyle; DateStyle @@ -196,11 +196,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) SAVEPOINT third_sp; -SET vacuum_cost_delay TO 1000; +SET vacuum_cost_delay TO 100; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 1s + 100ms (1 row) SET datestyle = 'Postgres, MDY'; @@ -220,7 +220,7 @@ ROLLBACK TO third_sp; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 900ms + 90ms (1 row) SHOW datestyle; @@ -239,7 +239,7 @@ ROLLBACK TO second_sp; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 700ms + 70ms (1 row) SHOW datestyle; @@ -258,7 +258,7 @@ ROLLBACK; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -278,7 +278,7 @@ BEGIN; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -294,11 +294,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) SAVEPOINT sp; -SET LOCAL vacuum_cost_delay TO 300; +SET LOCAL vacuum_cost_delay TO 30; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 300ms + 30ms (1 row) SET LOCAL datestyle = 'Postgres, MDY'; @@ -318,7 +318,7 @@ ROLLBACK TO sp; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -337,7 +337,7 @@ ROLLBACK; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -357,7 +357,7 @@ BEGIN; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -373,11 +373,11 @@ SELECT '2006-08-13 12:34:56'::timestamptz; (1 row) SAVEPOINT sp; -SET LOCAL vacuum_cost_delay TO 300; +SET LOCAL vacuum_cost_delay TO 30; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 300ms + 30ms (1 row) SET LOCAL datestyle = 'Postgres, MDY'; @@ -397,7 +397,7 @@ RELEASE SAVEPOINT sp; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 300ms + 30ms (1 row) SHOW datestyle; @@ -416,7 +416,7 @@ ROLLBACK; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; @@ -433,12 +433,12 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET followed by SET LOCAL BEGIN; -SET vacuum_cost_delay TO 400; -SET LOCAL vacuum_cost_delay TO 500; +SET vacuum_cost_delay TO 40; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 500ms + 50ms (1 row) SET datestyle = 'ISO, DMY'; @@ -459,7 +459,7 @@ COMMIT; SHOW vacuum_cost_delay; vacuum_cost_delay ------------------- - 400ms + 40ms (1 row) SHOW datestyle; diff --git a/src/test/regress/sql/guc.sql b/src/test/regress/sql/guc.sql index e03bc20595..9966606275 100644 --- a/src/test/regress/sql/guc.sql +++ b/src/test/regress/sql/guc.sql @@ -3,14 +3,14 @@ SHOW datestyle; -- SET to some nondefault value -SET vacuum_cost_delay TO 400; +SET vacuum_cost_delay TO 40; SET datestyle = 'ISO, YMD'; SHOW vacuum_cost_delay; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; -- SET LOCAL has no effect outside of a transaction -SET LOCAL vacuum_cost_delay TO 500; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; SET LOCAL datestyle = 'SQL'; SHOW datestyle; @@ -18,7 +18,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET LOCAL within a transaction that commits BEGIN; -SET LOCAL vacuum_cost_delay TO 500; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; SET LOCAL datestyle = 'SQL'; SHOW datestyle; @@ -30,7 +30,7 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET should be reverted after ROLLBACK BEGIN; -SET vacuum_cost_delay TO 600; +SET vacuum_cost_delay TO 60; SHOW vacuum_cost_delay; SET datestyle = 'German'; SHOW datestyle; @@ -42,12 +42,12 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- Some tests with subtransactions BEGIN; -SET vacuum_cost_delay TO 700; +SET vacuum_cost_delay TO 70; SET datestyle = 'MDY'; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; SAVEPOINT first_sp; -SET vacuum_cost_delay TO 800; +SET vacuum_cost_delay TO 80; SHOW vacuum_cost_delay; SET datestyle = 'German, DMY'; SHOW datestyle; @@ -56,12 +56,12 @@ ROLLBACK TO first_sp; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; SAVEPOINT second_sp; -SET vacuum_cost_delay TO 900; +SET vacuum_cost_delay TO 90; SET datestyle = 'SQL, YMD'; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; SAVEPOINT third_sp; -SET vacuum_cost_delay TO 1000; +SET vacuum_cost_delay TO 100; SHOW vacuum_cost_delay; SET datestyle = 'Postgres, MDY'; SHOW datestyle; @@ -85,7 +85,7 @@ SHOW vacuum_cost_delay; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; SAVEPOINT sp; -SET LOCAL vacuum_cost_delay TO 300; +SET LOCAL vacuum_cost_delay TO 30; SHOW vacuum_cost_delay; SET LOCAL datestyle = 'Postgres, MDY'; SHOW datestyle; @@ -105,7 +105,7 @@ SHOW vacuum_cost_delay; SHOW datestyle; SELECT '2006-08-13 12:34:56'::timestamptz; SAVEPOINT sp; -SET LOCAL vacuum_cost_delay TO 300; +SET LOCAL vacuum_cost_delay TO 30; SHOW vacuum_cost_delay; SET LOCAL datestyle = 'Postgres, MDY'; SHOW datestyle; @@ -121,8 +121,8 @@ SELECT '2006-08-13 12:34:56'::timestamptz; -- SET followed by SET LOCAL BEGIN; -SET vacuum_cost_delay TO 400; -SET LOCAL vacuum_cost_delay TO 500; +SET vacuum_cost_delay TO 40; +SET LOCAL vacuum_cost_delay TO 50; SHOW vacuum_cost_delay; SET datestyle = 'ISO, DMY'; SET LOCAL datestyle = 'Postgres, MDY';