Foreign key slows down copy/insert

Поиск
Список
Период
Сортировка
От Richard van den Berg
Тема Foreign key slows down copy/insert
Дата
Msg-id 425E5B38.6020407@trust-factory.com
обсуждение исходный текст
Ответы Re: Foreign key slows down copy/insert  ("Joshua D. Drake" <jd@commandprompt.com>)
Re: Foreign key slows down copy/insert  (Vivek Khera <vivek@khera.org>)
Список pgsql-performance
I am new to cross references between tables, and I am trying to
understand how they impact performance. From reading the documentation I
was under the impression that deffering foreign keys would yield about
the same performance as dropping them before a copy, and adding them
after. However, I cannot see this in my test case.

I have a table A with an int column ID that references table B column
ID. Table B has about 150k rows, and has an index on B.ID. When trying
to copy 1 million rows into A, I get the following \timings:

1) drop FK, copy (200s), add FK (5s)
2) add FK defferable initially deffered, copy (I aborted after 30min)
3) add FK defferable initially deffered, begin, copy (200s), commit (I
aborted after 30min)

How do I explain why test cases 2 and 3 do not come close to case 1? Am
I missing something obvious?

Since the database I am working on has many FKs, I would rather not have
to drop/add them when I am loading large data sets.

If it would help I can write this out in a reproducable scenario. I am
using postgresql 7.4.5 at the moment.

Sincerely,

--
Richard van den Berg, CISSP
-------------------------------------------
Trust Factory B.V. |     www.dna-portal.net
Bazarstraat 44a    |  www.trust-factory.com
2518AK The Hague   |  Phone: +31 70 3620684
The Netherlands    |  Fax  : +31 70 3603009
-------------------------------------------

В списке pgsql-performance по дате отправления:

Предыдущее
От: elein@varlena.com (elein)
Дата:
Сообщение: Re: [Fwd: Re: Functionscan estimates]
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: How to improve db performance with $7K?