Hello PostgreSQL users
While developing a timetable parser, we are running into performance issues. So I need to get a “feeling” what to expect (or not) from PostgreSQL. Currently we have version 8.2.5 on a Mac OX X server 10.4.11 (PPC, 1.5 GB memory).
Running just a select * from
takes around 410’000 ms, i. e. nearly 7 minutes! The table contains roughly 1.3 Mio records.For what I would have expected, this is a long time for such a stmt.
We also use Sybase iAnywhere which seems to be much faster. I should say that these comments are at the moment not hard facts, speak measure based, but what we “see” while developing.
I would be very happy to hear about others experience concerning PostgreSQL performance. May be there are parameters to set better than the defaults one, may be we need more memory because PostgreSQL needs in general more memory than Sybase etc.
Thanks for any comments, Robert
PS: BTW, the currently slow performance in our setup is not limited to big tables, also quering, updating, inserting of records into tables with some 10’000 of records is not as we expect.
PS2: Table and indexes of the 1.2 Mio table:
TrackIT=# \d+ timetable_positions
Table “public.timetable_positions”
Column | Type | Modifiers | Description
---------------------------------±----------------------------±----------±------------
connection_company_id | integer | |
connection_station_id_arriving | integer | |
connection_station_id_departing | integer | |
connection_vehicle_code | character varying(50) | |
creation_date | timestamp without time zone | |
creation_user_id | integer | |
creation_user_name | character varying(100) | |
id | integer | not null |
modification_date | timestamp without time zone | |
modification_user_id | integer | |
modification_user_name | character varying(100) | |
source | character varying(200) | |
station_id_arriving | integer | |
station_id_departing | integer | |
temporary_marked | integer | |
time_of_arrival | integer | |
time_of_departure | integer | |
transport_company_id | integer | |
transport_number | integer | |
transport_variant | integer | |
version | character varying(200) | |
vehicle_code | character varying(100) | |
is_longest_transport_variant | boolean | |
Indexes:
“timetable_positions_pkey” PRIMARY KEY, btree (id)
“timetable_positions_1_ix” btree (time_of_departure)
“timetable_positions_fkey_1_ix” btree (station_id_arriving)
“timetable_positions_fkey_2_ix” btree (station_id_departing)
“timetable_positions_fkey_3_ix” btree (connection_company_id, connection_station_id_arriving, connection_station_id_departing, connection_vehicle_code)
“timetable_positions_fkey_4_ix” btree (vehicle_code)
“timetable_positions_fkey_5_ix” btree (transport_company_id, transport_number, transport_variant)
Has OIDs: no


