X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 83AA1536D1 for ; Fri, 25 Mar 2005 01:25:37 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 34220-10 for ; Fri, 25 Mar 2005 01:25:24 +0000 (GMT) Received: from mir3-fs.mir3.com (unknown [216.74.11.46]) by svr1.postgresql.org (Postfix) with ESMTP id 1E8665341B for ; Fri, 25 Mar 2005 01:25:23 +0000 (GMT) Received: from amateljan.mirlogic.com ([172.16.2.68]) by mir3-fs.mir3.com with Microsoft SMTPSVC(5.0.2195.5329); Thu, 24 Mar 2005 17:25:18 -0800 Subject: Re: Delete query takes exorbitant amount of time From: Mark Lewis To: Tom Lane Cc: pgsql-performance@postgresql.org In-Reply-To: <2630.1111711927@sss.pgh.pa.us> References: <1111709457.9085.127.camel@k2.cet.nau.edu> <2630.1111711927@sss.pgh.pa.us> Content-Type: text/plain Organization: MIR3, Inc. Message-Id: <1111713798.23412.3.camel@amateljan.mirlogic.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.4 (1.4.4-3) Date: Thu, 24 Mar 2005 17:23:19 -0800 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2005 01:25:18.0635 (UTC) FILETIME=[815D77B0:01C530D9] X-Virus-Scanned: by amavisd-new at hub.org X-Archive-Number: 200503/528 X-Sequence-Number: 11233 Tom, I've got a similar problem with deletes taking a very long time. I know that there are lots of foreign keys referencing this table, and other foreign keys referencing those tables, etc. I've been curious, is there a way to find out how long the foreign key checks take for each dependent table? -- Mark Lewis On Thu, 2005-03-24 at 16:52, Tom Lane wrote: > Karim Nassar writes: > > Here is the statement: > > > orfs=# explain analyze DELETE FROM int_sensor_meas_type WHERE > > id_meas_type IN (SELECT * FROM meas_type_ids); > > QUERY PLAN > > ----------------------------------------------------------------------------------------------------------------------------- > > Hash Join (cost=11.53..42.06 rows=200 width=6) (actual > > time=1.564..2.840 rows=552 loops=1) > > ... > > Total runtime: 2499616.216 ms > > (7 rows) > > Notice that the actual join is taking 2.8 ms. The other ~40 minutes is > in operations that we cannot see in this plan, but we can surmise are ON > DELETE triggers. > > > Where do I go from here? > > Look at what your triggers are doing. My private bet is that you have > unindexed foreign keys referencing this table, and so each deletion > forces a seqscan of some other, evidently very large, table(s). > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 7: don't forget to increase your free space map settings