Paul Raines wrote:
>
> Okay, I destroyed the database and recreated it. I then created
> the following tables and indices;
>
...
>
> I then filled the tables from my Perl DBI script copying Oracle
> data to Postgres (same as before). This time, it worked without
> failing do the index FATAL.
>
> I immediatetly tried my subselect.
>
> bbrmdc=> select distinct runtype from mdc1_runs where
> bbrmdc-> runnum in (select runnum from mdc1_simu where version = '3.1.0');
>
> After a couple of minutes, I killed the postgres process. I quit my
> psql and then reconnectd. I tried a simple select and it hung too.
> Killed it and reconnected. I dropped the three indices and tried a
> vacuum. It also hung forever. I killed the postgres process,
> restarted the postmaster, deleted the pg_vlock file, and retried the
> vacuum. It worked. A simple select then works too.
First, I assume that you didn't run vacuum after filling tables and so
indices were not used: to get index scans you have to either create
indices _after_ (not before) filling tables or vacuum tables _after_
filling.
Second, after killing server process it's better to restart postmaster!
Killing is abnormal thing - some locks/spinlocks were not released
and so your next connection hung.
>
> I recreated the indices exactly as above, and selects still
> work. The subselect also worked too and took about 12 seconds.
What's Oracle time ?
Vadim