X-Original-To: pgsql-sql@postgresql.org Received: from server.beierfeld.kabeljournal.de (pD900DD2D.dip.t-dialin.net [217.0.221.45]) by postgresql.org (Postfix) with SMTP id 3BBB54760CC for ; Fri, 7 Mar 2003 05:26:28 -0500 (EST) Received: (qmail 9949 invoked from network); 7 Mar 2003 10:26:29 -0000 Received: from station158.beierfeld.kabeljournal.de (192.168.128.158) by server.beierfeld.kabeljournal.de with SMTP; 7 Mar 2003 10:26:29 -0000 Date: Fri, 7 Mar 2003 11:26:39 +0100 From: Andre Schubert To: pgsql-sql@postgresql.org Subject: Help on indexing timestamps Message-Id: <20030307112639.395720be.andre@km3.de> Organization: km3 teledienst GmbH X-Mailer: Sylpheed version 0.8.6 (GTK+ 1.2.10; i586-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Archive-Number: 200303/179 X-Sequence-Number: 12219 Hi all, i have a little problem on indexing a table which contains about 4 millions of traffic-data. My problem is, that a want to select all data from a specific month from a specific ip and this select should use the index. I use the following select: db_nmkm3aue=# explain analyze select sum(inet_up+inet_down) from tbl_traffic where date_trunc('month',tbl_traffic.time_stamp)::timestamptz = date_trunc('month',now() - timespan('1 months')) and ip = '80.243.38.57'; NOTICE: QUERY PLAN: Aggregate (cost=116.30..116.30 rows=1 width=16) (actual time=1620.79..1620.79 rows=1 loops=1) -> Index Scan using idx_ip_time_stamp on tbl_traffic (cost=0.00..116.30 rows=1 width=16) (actual time=1216.79..1579.89 rows=5232 loops=1) Total runtime: 1620.94 msec But it takes a long time to select the traffic for all Ips. Is there a way to select these data with using the index correctly ? Thanks in advance BTW: Table-schema as follows db_test=# \d tbl_traffic Table "tbl_traffic" Column | Type | Modifiers ------------+--------------------------+----------- time_stamp | timestamp with time zone | not null ip | inet | local_up | bigint | not null local_down | bigint | not null inet_up | bigint | not null inet_down | bigint | not null Indexes: idx_ip_time_stamp db_test=# \d idx_ip_time_stamp Index "idx_ip_time_stamp" Column | Type ------------+-------------------------- ip | inet time_stamp | timestamp with time zone