Re: Slow Inserts on 1 table? - Mailing list pgsql-general
From | Jim C. Nasby |
---|---|
Subject | Re: Slow Inserts on 1 table? |
Date | |
Msg-id | 20050720161219.GU10127@decibel.org Whole thread Raw |
In response to | Slow Inserts on 1 table? (Dan Armbrust <daniel.armbrust.list@gmail.com>) |
Responses |
Force PostgreSQL to use indexes on foreign key lookups - Was:
Slow Inserts on 1 table?
|
List | pgsql-general |
What indexes are defined on both tables? Are there any triggers or rules? On Wed, Jul 20, 2005 at 09:50:54AM -0500, Dan Armbrust wrote: > I have one particular insert query that is running orders of magnitude > slower than other insert queries, and I cannot understand why. > For example, Inserts into "conceptProperty" (detailed below) are at > least 5 times faster than inserts into "conceptPropertyMultiAttributes". > > When I am running the inserts, postmaster shows as pegging one CPU on > the Fedora Core 3 server it is running on at nearly 100%. > > Any advice is appreciated. Here is a lot of info that may shed light on > the issue to someone with more experience than me: > > Example Insert Query with data: > INSERT INTO conceptPropertyMultiAttributes (codingSchemeName, > conceptCode, propertyId, attributeName, attributeValue) VALUES ('NCI > MetaThesaurus', 'C0000005', 'T-2', 'Source', 'MSH2005_2004_10_12') > > EXPLAIN ANALYZE output: > QUERY PLAN > Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.005..0.008 > rows=1 loops=1) > Total runtime: 4.032 ms > > Table Structure: > CREATE TABLE conceptpropertymultiattributes ( > codingschemename character varying(70) NOT NULL, > conceptcode character varying(100) NOT NULL, > propertyid character varying(50) NOT NULL, > attributename character varying(50) NOT NULL, > attributevalue character varying(250) NOT NULL > ); > > Primary Key: > ALTER TABLE ONLY conceptpropertymultiattributes > ADD CONSTRAINT conceptpropertymultiattributes_pkey PRIMARY KEY > (codingschemename, conceptcode, propertyid, attributename, attributevalue); > > Foreign Key: > ALTER TABLE ONLY conceptpropertymultiattributes > ADD CONSTRAINT f FOREIGN KEY (codingschemename, conceptcode, > propertyid) REFERENCES conceptproperty(codingschemename, conceptcode, > propertyid); > > > Structure of Table Referenced by Foreign Key: > CREATE TABLE conceptproperty ( > codingschemename character varying(70) NOT NULL, > conceptcode character varying(100) NOT NULL, > propertyid character varying(50) NOT NULL, > property character varying(250) NOT NULL, > "language" character varying(32), > presentationformat character varying(50), > datatype character varying(50), > ispreferred boolean, > degreeoffidelity character varying(50), > matchifnocontext boolean, > representationalform character varying(50), > propertyvalue text NOT NULL > ); > > Primary Key: > ALTER TABLE ONLY conceptproperty > ADD CONSTRAINT conceptproperty_pkey PRIMARY KEY (codingschemename, > conceptcode, propertyid); > > Thanks, > > Dan > > ---------------------------(end of broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match > -- Jim C. Nasby, Database Consultant decibel@decibel.org Give your computer some brain candy! www.distributed.net Team #1828 Windows: "Where do you want to go today?" Linux: "Where do you want to go tomorrow?" FreeBSD: "Are you guys coming, or what?"
pgsql-general by date: