Jumat, April 17, 2009

Firebird [NOT IN (SELECT] Problem FB 2.1.1

Sewaktu bersih-bersih data di Firebird database server LI-V2.1.1.17910 Firebird 2.1, ada masalah dengan perintah sql berikut:

select count(*) jumlah from EVSCOREDET d where d.HDRID not in (select h.ID from EVSCOREHDR h)

Server menjadi sibuk, not responding. Padahal query berikut di eksekusi dengan cepat seperti biasanya:

select count(*) jumlah from EVSCOREDET d where d.HDRID in (select h.ID from EVSCOREHDR h)

Tampaknya ada masalah dengan NOT IN di SELECT tabel derivative. Akhirnya terpaksa di restart service-nya.
Kebetulan ada Firebird versi 2.5 beta 1, perintah sql yang sama dijalankan dengan mulus.

select count(*) jumlah from EVSCOREDET d where d.HDRID in (select h.ID from EVSCOREHDR h)
= 256450

select count(*) jumlah from EVSCOREDET d
= 292114

select count(*) jumlah from EVSCOREDET d where d.HDRID not in (select h.ID from EVSCOREHDR h)
= 35664

Mudah-mudahan dalam 6 bulan ke depan FB 2.5 ini sudah final release.

Tidak ada komentar: