Michał Kowalski Bazy danych
Temat: [Oracle] Zapytania które nie byłyby blokowane przez...
Witam,Na bazie z której raportuje przeciętnie raz na godzinę są robione update'y, które blokują użytkownikom generowanie raportów.
Jak mógłbym napisać select tak by użytkownik nigdy nie musiał czekać na wynik z powodu locków, związanych z updatem czy inseretem tabeli?
Najczęściej tabele:
tab_pełna
tab_z_przyrostem
aktualizowane są w następujący sposób:
BEGIN
delete from tab_pelna e where exists (select 1 from tab_z_przyrostem i where e.id = i.id);
insert /*+ APPEND */ into tab_pelna (select * from tab_z_przyrostem);
COMMIT;
END;
Czy przy takim typie updatowania można zapewnić ciągły dostęp do danych? Jeśli dobrze rozumiem do chwili commita krotki które zostaną usunięte i zastąpione nowymi są nadal dostępne, jak na nich pracować, godząc się na nieaktualne dane.