Ik heb de volgende tabellen onder postgresql 7.3:
Create table hosts (
hostid serial primary key,
hostip cidr NOT NULL,
hostname varchar(20)
);
Create table tabel1 (
tbl1ID varchar(20) primary key,
hostid integer references hosts,
amount integer NOT NULL
);
Create index tbl1_index on tabel1 (hostid);
De tabel met hosts telt ongeveer 400 record
En tabel1 telt er 30.000
Als ik nu de volgende query uitvoer:
select hosts.hostname, sum(tabel1.amount) as amount from tabel1 join hosts on hosts.hostid=tabel1.hostid group by hosts.hostname order by amount desc
Dan doet hij er 3,7 sec over @700 Mhz
Op M$ SQL server 7 @1000Mhz doet hij er 0.01 sec over
Hoe kan dat? en wat doe ik fout?
Ik heb de query al wat geoptimalizeerd:
select hosts.hostname, sum(tabel1.amount) as amount from hosts right join (select hostid, sum(amount) as amount from tabel1 group by hostid) as tbl1 on tbl1.hostid=hosts.hostid group by hosts.hostname order by amount desc
Deze doet er nog 0.27 sec over @700Mhz, maar dat is nog veeeel te veel: tabel1 gaat straks ongeveer 1 miljoen records bevatten
Iemand een idee?
Create table hosts (
hostid serial primary key,
hostip cidr NOT NULL,
hostname varchar(20)
);
Create table tabel1 (
tbl1ID varchar(20) primary key,
hostid integer references hosts,
amount integer NOT NULL
);
Create index tbl1_index on tabel1 (hostid);
De tabel met hosts telt ongeveer 400 record
En tabel1 telt er 30.000
Als ik nu de volgende query uitvoer:
select hosts.hostname, sum(tabel1.amount) as amount from tabel1 join hosts on hosts.hostid=tabel1.hostid group by hosts.hostname order by amount desc
Dan doet hij er 3,7 sec over @700 Mhz
Op M$ SQL server 7 @1000Mhz doet hij er 0.01 sec over
Hoe kan dat? en wat doe ik fout?
Ik heb de query al wat geoptimalizeerd:
select hosts.hostname, sum(tabel1.amount) as amount from hosts right join (select hostid, sum(amount) as amount from tabel1 group by hostid) as tbl1 on tbl1.hostid=hosts.hostid group by hosts.hostname order by amount desc
Deze doet er nog 0.27 sec over @700Mhz, maar dat is nog veeeel te veel: tabel1 gaat straks ongeveer 1 miljoen records bevatten
Iemand een idee?
Cupra Born