Article View: pl.comp.bazy-danych
Article #183288Re: Transakcje
From: Adam K.
Date: Tue, 07 Jul 2009 05:09
Date: Tue, 07 Jul 2009 05:09
50 lines
3222 bytes
3222 bytes
Witam, Użytkownik "Sławomir Szyszło" <slaszysz@CIACHTOlist.pl> napisał w wiadomości news:h2tt2q.2lk.1@slaszyszCIACHTO.list.pl... > Dnia Mon, 6 Jul 2009 21:51:01 +0200, "Adam K." <akobylin@nospam.op.pl> > wklepał(-a): > >>Chyba jednak nie, gdy rozpoczne transakcje w trybie read commited, wykonam >>insert do bazy (nie wiem czy to ma znaczenie, ale dodawanie przy pomocy >>procedury skladowanej), to póki nie zrobie COMMIT/ROLLBACK inny proces nie >>moze odczytac zadnych rekordów z tabelki. > > Odczytać może, ale nie te wstawione. ;) > > Napisz może co masz na myśli tu: > "Podczas tego importu chciałbym aby baza w zakresie danych przed > rozpoczęciem > importu była dostępna dla pozostałych użytkowników." > > Import oznacza dodanie danych, aktualizacje czy usuwanie? A może mix tego > wszystkiego? > Import danych oznacza: 1. Usunięcie części danych 2. Dodanie brakujących 2. Modyfikacji (aktualizacji) części rekordów już istniejących. Chciałbym osiągnąć taki efekt, że jeśli przed rozpoczęciem importu tabelka Produkty miała np. 10 rekordów, to do zakończenia importu (czyli wykonania COMMIT) pozostali użytkownicy widzą te rekordy niezmienione. Import część z tych rekordów usunie, część zmieni a część zmodyfikuje, w rezultacie czego np. w tabeli pozostanie 5 rekordów niezmienionych, 3 zostaną skasowane, 2 zmodyfikowane, a 5 zostanie dodanych całkiem nowych. Tak przygotowane rekordy wystarczy jeśli będą dostępne po wykonaniu COMMIT. Problem w tym, że jeśli mam READ_COMMITED, to do czasu wykonania COMMIT, jakikolwiek SELECT z tabelki Produkty "zawiesza" się. Jeśli w określonym czasie dotrze do serwera COMMIT, SELECT innego usera się wykona (zobaczy on tabelkę już po zmianach), jeśli natomiast nie zdąży - klient wykonujący SELECT z tej tabeli otrzyma wyjątek "Limit czasu przekroczony" zamiast pobrać rekordy, które były dostępne przed rozpoczęciem transakcji. Oczekiwany efekt do tej pory udało mi się osiągnąć tylko przy poziomie izolacji transakcji typu SNAPSHOT... Mam nadzieję, że teraz jest już jasne z czym mam problem :) Pozdrawiam Adam
Technical Details
Message-ID:
<h2ul9o$lg$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailReferences:
<h2ti2l$1vo$1@news.onet.pl> <4ba0026d-5f7f-4fe5-8669-103dd4c3fa7d@s31g2000yqs.googlegroups.com> <h2tkja$8tr$1@news.onet.pl> <h2tt2q.2lk.1@slaszyszCIACHTO.list.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: "Adam K." <akobylin@nospam.op.pl> Newsgroups: pl.comp.bazy-danych Subject: Re: Transakcje Date: Tue, 7 Jul 2009 07:09:11 +0200 Organization: http://onet.pl Lines: 51 Message-ID: <h2ul9o$lg$1@news.onet.pl> References: <h2ti2l$1vo$1@news.onet.pl> <4ba0026d-5f7f-4fe5-8669-103dd4c3fa7d@s31g2000yqs.googlegroups.com> <h2tkja$8tr$1@news.onet.pl> <h2tt2q.2lk.1@slaszyszCIACHTO.list.pl> NNTP-Posting-Host: iie251.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1246943352 688 79.189.212.251 (7 Jul 2009 05:09:12 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Tue, 7 Jul 2009 05:09:12 +0000 (UTC) In-Reply-To: <h2tt2q.2lk.1@slaszyszCIACHTO.list.pl> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Mail 6.0.6001.18000 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6001.18049 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit