Paul Mamin ([EMAIL PROTECTED]) reports a bug with a severity of 4
The lower the number the more severe it is.

Short Description
Auto-VACUUM doesnt work

Long Description
I have PIII 800MHz, 128MB, HDD IDE Quantum Fibeball AS Plus 20 Gb, Slackware Linux 
8.0, kernel 2.4.17, PostgreSQL 7.2b3, standard settings with fsync enabled.

I run my example twice:
1) with
#        $conn->exec("VACUUM test");
line commented;
2) with the same line uncommented.

Results from 1):
10       1 wallclock secs ( 0.04 usr +  0.01 sys =  0.05 CPU)
20       1 wallclock secs ( 0.09 usr +  0.05 sys =  0.14 CPU)
30       1 wallclock secs ( 0.11 usr +  0.03 sys =  0.14 CPU)
40       1 wallclock secs ( 0.09 usr +  0.00 sys =  0.09 CPU)
50       1 wallclock secs ( 0.13 usr +  0.02 sys =  0.15 CPU)
60       1 wallclock secs ( 0.06 usr +  0.04 sys =  0.10 CPU)
70       1 wallclock secs ( 0.12 usr +  0.06 sys =  0.18 CPU)
80       1 wallclock secs ( 0.05 usr +  0.05 sys =  0.10 CPU)
90       2 wallclock secs ( 0.08 usr +  0.03 sys =  0.11 CPU)
100      1 wallclock secs ( 0.06 usr +  0.01 sys =  0.07 CPU)
110      3 wallclock secs ( 0.07 usr +  0.09 sys =  0.16 CPU)
120      8 wallclock secs ( 0.16 usr +  0.05 sys =  0.21 CPU)
130     12 wallclock secs ( 0.15 usr +  0.03 sys =  0.18 CPU)
140     12 wallclock secs ( 0.20 usr +  0.05 sys =  0.25 CPU)
150     14 wallclock secs ( 0.22 usr +  0.09 sys =  0.31 CPU)
160     14 wallclock secs ( 0.27 usr +  0.03 sys =  0.30 CPU)
170     15 wallclock secs ( 0.13 usr +  0.03 sys =  0.16 CPU)
180     16 wallclock secs ( 0.19 usr +  0.07 sys =  0.26 CPU)
190     17 wallclock secs ( 0.17 usr +  0.08 sys =  0.25 CPU)
200     17 wallclock secs ( 0.20 usr +  0.02 sys =  0.22 CPU)
210     19 wallclock secs ( 0.17 usr +  0.08 sys =  0.25 CPU)
220     19 wallclock secs ( 0.22 usr +  0.04 sys =  0.26 CPU)
230     20 wallclock secs ( 0.16 usr +  0.03 sys =  0.19 CPU)
240     21 wallclock secs ( 0.18 usr +  0.05 sys =  0.23 CPU)
250     21 wallclock secs ( 0.20 usr +  0.06 sys =  0.26 CPU)
260     23 wallclock secs ( 0.17 usr +  0.07 sys =  0.24 CPU)
270     23 wallclock secs ( 0.19 usr +  0.01 sys =  0.20 CPU)
280     24 wallclock secs ( 0.18 usr +  0.08 sys =  0.26 CPU)
290     25 wallclock secs ( 0.21 usr +  0.05 sys =  0.26 CPU)
300     26 wallclock secs ( 0.21 usr +  0.08 sys =  0.29 CPU)
...

And results from 2):
10       0 wallclock secs ( 0.06 usr +  0.02 sys =  0.08 CPU)
20       1 wallclock secs ( 0.08 usr +  0.04 sys =  0.12 CPU)
...
1000     1 wallclock secs ( 0.10 usr +  0.01 sys =  0.11 CPU)

It seems that auto-VACUUM doesnt work properly... :(

Sample Code
#!/usr/bin/perl

use Pg;
use Benchmark;

$conn = Pg::connectdb("dbname=test");
die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status;

$conn->exec("BEGIN");
$result = $conn->exec("CREATE TABLE test (a int primary key, b int)");
for ($i = 0; $i < 100; $i++) {
    $conn->exec("INSERT INTO test VALUES ($i, $i)");
}
$conn->exec("COMMIT");

$conn->exec("BEGIN");
$t0 = new Benchmark;
for ($i = 0; $i < 300; $i++) {
    for ($j = 0; $j < 100; $j++) {
        $conn->exec("UPDATE test SET b=b+1 WHERE a=$j");
    }
    if ($i % 10 == 9) {
        $conn->exec("COMMIT");
#        $conn->exec("VACUUM test");
        $conn->exec("BEGIN");
        $t1 = new Benchmark;
        print $i+1 ."\t" . timestr(timediff($t1, $t0)) . "\n";
        $t0 = $t1;
    }
}
$conn->exec("COMMIT");


No file was uploaded with this report


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to