I'm using Postgres for data analysis (interactive and batch). I need
to focus the analysis on a subset of one table, and, for both
performance and simplicity, have a function which loads that subset
into another table (DELETE FROM another_table; INSERT INTO
another_table SELECT ...).
Oddly enough, although the SELECT itself is very quick (< 1 s), the
DELETE and INSERT can take over a minute! I can't figure out why.
another_table is simple: it has only 7 fields. Two of those fields
are indexed, using a simple one field standard index. There are no
triggers on it.
What is the cause of this behavior? What should I do to make this
faster? Is there a recommended work around?
(I'm hesitant to drop another_table and recreate it each time, since
many views depend on it.)