NOT IN query takes forever

Поиск
Список
Период
Сортировка
От Marius Andreiana
Тема NOT IN query takes forever
Дата
Msg-id 1091522942.4936.5.camel@marte.biciclete.ro
обсуждение исходный текст
Ответы Re: NOT IN query takes forever
Список pgsql-performance
Hi

I have 2 tables like this:
CREATE TABLE query (
    query_id     int not null,
    dat     varchar(64)  null ,
    sub_acc_id     int  null ,
    query_ip     varchar(64)  null ,
    osd_user_type     varchar(64)  null
)
;

CREATE TABLE trans (
    transaction_id     varchar(64)  not null ,
    date     varchar(64)  null ,
    query_id     int not  null ,
    sub_acc_id     int  null ,
    reg_acc_id     int  null
)
;

CREATE UNIQUE INDEX query_query_id_idx
ON query (query_id)
;

CREATE INDEX trans_reg_acc_id_idx
ON trans (reg_acc_id)
;

CREATE INDEX trans_query_id_idx
ON trans(query_id)
;
osd=> select count(*) from trans
osd-> ;
 count
--------
 598809
(1 row)

osd=>
osd=> select count(*) from query
osd-> ;
 count
--------
 137042
(1 row)

I just vacuum analyse'd the database.

Trying to run this query:
EXPLAIN ANALYSE
select * FROM trans
WHERE query_id NOT IN (select query_id FROM query)

but it will remain like that forever (cancelled after 30 min).

My postgresql.conf is the default:
# - Memory -

shared_buffers = 1000           # min 16, at least max_connections*2,
8KB each
#sort_mem = 1024                # min 64, size in KB
#vacuum_mem = 8192              # min 1024, size in KB

Should I adjust something?

Using postgresql 7.4.2, saw in release notes that IN/NOT IN queries are
at least as faster than EXISTS.

Thank you!
--
Marius Andreiana
Galuna - Solutii Linux in Romania
http://www.galuna.ro


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

Предыдущее
От: "Scott Marlowe"
Дата:
Сообщение: Re: my boss want to migrate to ORACLE
Следующее
От: "Lending, Rune"
Дата:
Сообщение: pg_autovacuum parameters