diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index b3b65f5f0d445df8f68b3eede65f74d15606c8d0..554503891597e2d76f018ec3b257a8d4e90c9d22 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.210 2009/02/24 12:09:08 petere Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.211 2009/02/28 00:10:50 tgl Exp $ -->
 
 <chapter Id="runtime-config">
   <title>Server Configuration</title>
@@ -1010,7 +1010,8 @@ SET ENABLE_SEQSCAN TO OFF;
      </para>
 
      <para>
-      This feature is disabled by default. To enable it, set the
+      This feature is disabled by default for manually issued
+      <command>VACUUM</command> commands. To enable it, set the
       <varname>vacuum_cost_delay</varname> variable to a nonzero
       value.
      </para>
@@ -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.
         </para>
+
+        <para>
+         When using cost-based vacuuming, appropriate values for
+         <varname>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.
+        </para>
        </listitem>
       </varlistentry>
 
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 548c0b00de84bac3832cc79cdb219f6b1dfdb3dc..0060be6a0285e7951618259b3f76526f98b907a5 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 40b087a8f3adc541c3442c931a73be63ca90fabd..5411840b2a087e1439c295602c0e7e96769518ce 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut <peter_e@gmx.net>.
  *
  * 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 a874b4541dbe004858dc84ab0d601c299761ddd9..f3aaf818ad83d02691fb7ef22a0e3aeef6b59dce 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 2e6056b376962fa9d5ee897146396334aae15ca8..a580daa089ddde3a05ede33c478abbe44d6707e6 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 e03bc2059575639ce1caf3370d7847f946ee3dce..9966606275c9b32ac50182cb1974e0d18e6fdecd 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';