1

Temat: Select nextval współbieżnie

Witam,

W wersji 8.4 podczas testów wydajnościowych zauważyliśmy dziwne zachowanie.
Wbrew definicji działania funkcji nextval otrzymujemy tą samą sekwnecję.

Dwa wątki w odzielnych transakcjach równocześnie próbuja dodać nową krotkę.. niestety kończy się to naruszeniem integralności bazy.

nextval zwraca dwa razy wartość 42400...

Pomysły ?

2010-11-22 12:50:41 CET LOG:  execute <unnamed>: select nextval ('referral_for_examination_id_seq')
2010-11-22 12:50:41 CET LOG:  execute <unnamed>: select nextval ('referral_for_examination_id_seq')
2010-11-22 12:50:41 CET LOG:  execute <unnamed>: insert into RFE_REFERALLS_FOR_EXAMINATION (CREATE_DATE, DOCTOR_ID, INSTITUTION_ID, LABORATORY_ID, PATIENT_ID, READY, REFERRAL_CODE, VALUEABLE_CLINIC_INFO, Id) values ($1, $2, $3, $4, $5, $6, $7, $8, $9)
2010-11-22 12:50:41 CET DETAIL:  parameters: $1 = '2010-11-22 12:51:06.472', $2 = '1173', $3 = '1249', $4 = NULL, $5 = '12', $6 = 'f', $7 = '1249-0100000012', $8 = 'tutaj dane istotne klinicznie', $9 = '42400'
2010-11-22 12:50:41 CET LOG:  execute <unnamed>: insert into RFE_REFERALLS_FOR_EXAMINATION (CREATE_DATE, DOCTOR_ID, INSTITUTION_ID, LABORATORY_ID, PATIENT_ID, READY, REFERRAL_CODE, VALUEABLE_CLINIC_INFO, Id) values ($1, $2, $3, $4, $5, $6, $7, $8, $9)
2010-11-22 12:50:41 CET DETAIL:  parameters: $1 = '2010-11-22 12:51:06.486', $2 = '1173', $3 = '1249', $4 = NULL, $5 = '13', $6 = 'f', $7 = '1249-0000000013', $8 = 'tutaj dane istotne klinicznie', $9 = '42400'

Ostatnio edytowany przez xautu (2010-11-22 17:15:26)

2

Odp: Select nextval współbieżnie

No fakt chyba jakiś bug.
Czy nałożenie na kolumnę Id wartości domyślnej nextval('referral_for_examination_id_seq') i pominięcie tej kolumny przy INSERT'ach nie rozwiązuje problemu?