--- Tom Lane <[EMAIL PROTECTED]> wrote:

> Shelby Cain <[EMAIL PROTECTED]> writes:
> > From looking at vacuum.c I gathered
> vacuum_cost_delay
> > must be >0 to enable the feature - correct?
> 
> Yeah, that's right --- delay=0 turns it off.  Weird.
>  Can anyone else
> reproduce the problem?
> 

On a hunch, I turned fsync off and the performance
jumped up to around the same performance I was getting
running the cygwin 7.4.x port.  The system is a IBM
Netvista (P4 2.0 ghz w/256 megs of ram, IDE drive)
running Windows 2000 SP4.

I've attached a minimal test script that should
reproduce the issue.  However, please be aware that
I've yet to reproduce this issue on XP Pro SP 1
(p4-2.8G, 1g ram, IDE drive).  I'll try and see if I
can reproduce this on other systems and get back to
the list.

If anyone has access to Windows 2000 SP4 and wants to
run this test script I'd be very interested in hearing
your results.

Regards,

Shelby Cain


                
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 
drop table test1;
CREATE TABLE test1
(
  idnbr integer unique not null,
  num1 numeric(12,2),
  num2 numeric(12,2),
  text1 varchar(600)
);

create function fill_table(integer) returns integer as
'
DECLARE
  maxnum alias for $1;
  md5str text;
  startid integer;
BEGIN
  select coalesce(max(idnbr)+1,0) from test1 into startid;
  for i in 1..maxnum loop
      select substr(
        md5(random()) ||md5(random()) ||md5(random()) 
        ||md5(random()) ||md5(random()) ||md5(random()) 
        ||md5(random()) ||md5(random()) ||md5(random()) 
        ||md5(random()) ||md5(random()) ||md5(random()) 
        ||md5(random()) ||md5(random()) ||md5(random()) 
        ||md5(random()) ||md5(random()) ||md5(random()),
        1,(200+random()*400)::integer
        ) into md5str;
      insert into test1 values (startid+i,random()*10000, (random()*100)::integer, 
md5str);
  end loop;
  return maxnum;
END;
' language plpgsql;

truncate test1;
select fill_table(100000);
analyze test1;
update test1 set num1 = num1 + 0 where random() > 0.5;
-- These shouldn't take long at all for a table containing 100000 tuples + ~50000 dead 
tuples
vacuum verbose test1;
vacuum full verbose test1;

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to