Re: Extremely Slow Cascade Delete Operation
От | Yan Cheng Cheok |
---|---|
Тема | Re: Extremely Slow Cascade Delete Operation |
Дата | |
Msg-id | 405923.27000.qm@web65711.mail.ac4.yahoo.com обсуждение исходный текст |
Ответ на | Re: Extremely Slow Cascade Delete Operation (Craig Ringer <craig@postnewspapers.com.au>) |
Ответы |
Re: Extremely Slow Cascade Delete Operation
|
Список | pgsql-general |
I try to add index to tables. (please refer to http://sites.google.com/site/yanchengcheok/Home/question.txt) Database is designed in the following graphical view (please refer to http://sites.google.com/site/yanchengcheok/Home/question.png) Here is the setting of my database. All using default except syncrhonous_commit = off. (please refer to http://sites.google.com/site/yanchengcheok/Home/database.PNG) My database size is as follow : SemiconductorInspection=# \timing on Timing is on. SemiconductorInspection=# SELECT count(*) FROM lot; count ------- 2 (1 row) Time: 1.003 ms SemiconductorInspection=# SELECT count(*) FROM unit; count -------- 206363 (1 row) Time: 92.766 ms SemiconductorInspection=# SELECT count(*) FROM measurement; count --------- 1650904 (1 row) Time: 355.161 ms SemiconductorInspection=# I simply run a delete operation : delete from lot where lot_id = 3; It takes TWO hours and never able to return! I even run VACUUM, with options FULL + FREEZE + ANALYZE but it does not help at all. Is there other optimization steps I had missed out? Thanks and Regards Yan Cheng CHEOK --- On Wed, 1/13/10, Craig Ringer <craig@postnewspapers.com.au> wrote: > From: Craig Ringer <craig@postnewspapers.com.au> > Subject: Re: [GENERAL] Extremely Slow Cascade Delete Operation > To: "Yan Cheng Cheok" <yccheok@yahoo.com> > Cc: pgsql-general@postgresql.org > Date: Wednesday, January 13, 2010, 7:01 PM > On 13/01/2010 4:09 PM, Yan Cheng > Cheok wrote: > > I have 3 tables - lot, unit and measurement > > > > 1 lot is having relationship to many unit. > > 1 unit is having relationship to many measurement. > > delete cascade is being used among their relationship > > > > > SemiconductorInspection=# delete from lot where lot_id > = 2; > > Are there indexes on fk_lot_id and fk_unit_id ? If not, a > DELETE from lot will cause a seqscan of unit for affected > units, and if any must be deleted each will cause a seqscan > of measurement for affected measurements. That's going to > get ugly fast. > > -- > Craig Ringer > > -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >
В списке pgsql-general по дате отправления: