----------------------------------------------
TABLE STRUCTURE
----------------------------------------------
CREATE TABLE gbobjects
(
ssid bigint NOT NULL,
nid character varying NOT NULL,
inid bigint NOT NULL,
uid bigint NOT NULL,
status character varying,
noofchanges integer NOT NULL,
fieldschanged character varying[] NOT NULL,
changetype bigint[] NOT NULL,
noofcommits integer NOT NULL,
noofchangesaftercommit integer NOT NULL,
history bigint[] NOT NULL,
gbtimestamp timestamp with time zone DEFAULT now(),
rendered_nbh text,
nbh text,
CONSTRAINT gbobjects_pkey PRIMARY KEY (ssid)
)
WITH (OIDS=FALSE);
ALTER TABLE gbobjects OWNER TO postgres;
-- Index: nid_object
CREATE INDEX nid_object
ON gbobjects
USING btree
(nid);
-------------------------------------------------------
using EXPLAIN
-------------------------------------------------------
We populated the table with data and used EXPLAIN
dbpedia=# EXPLAIN SELECT nid,max(ssid) FROM gbobjects where ssid<=
100000 group by nid ;
QUERY PLAN
--------------------------------------------------------------------------------------------------
GroupAggregate (cost=20966.03..22944.49 rows=98923 width=27)
-> Sort (cost=20966.03..21213.34 rows=98923 width=27)
Sort Key: nid
-> Index Scan using ssid_object on gbobjects (cost=0.00..10388.88
rows=98923 width=27)
Index Cond: (ssid <= 100000)
Total rows : *875459 *
*The cost is very high. Is there a way to reduce the cost ?. We have kept
the
postgresql configuration files as it is i.e. they are the default
configuration
files.* Can the cost be reduced by changing some parameters in
postgresql.conf file. If yes which are those parameters ?
*Operating system used : ubuntu-9.04
postgresql version : 8.3
Ram : 2 GB
*
Thank you in advance
Rajiv nair