Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Transakcije

10 views
Skip to first unread message

Lero

unread,
Oct 26, 2013, 3:04:28 AM10/26/13
to
Pozdrav

imam jednu nedoumicu
Jel normalno da prilikom rada sa
BeginTransaction
...
...
comit ili rolback

baza je nedostupna za sve ostale korisnike ?!

MSSQL 2008

Matija Kapraljevic [Revenger]

unread,
Oct 28, 2013, 3:05:47 AM10/28/13
to

Bruno Babic

unread,
Oct 28, 2013, 5:43:29 AM10/28/13
to
On 26.10.2013. 9:04, Lero wrote:
> imam jednu nedoumicu
> Jel normalno da prilikom rada sa
> BeginTransaction
> ...
> ...
> comit ili rolback
>
> baza je nedostupna za sve ostale korisnike ?!

Ovisi sto smatras pod "baza je nedostupna".

Transakcije mogu lockati tablice, pa moze biti da te to muci... pogotovo
ukoliko imas nekakve kompleksnije upite.

--
bbabic(a)globalnet.hr
2b||!2b?

Lero

unread,
Oct 28, 2013, 2:20:47 PM10/28/13
to Bruno Babic
Pa nedostupno smatram da ne mogu ostvariti konekciju prema toj bazi.

Nemam neke zahtjevne upite nego upisujem 10-ak slogova u par tablica.
Dok sam testirao transakciju htio sam nešto drugo vidjeti u drugom
prozoru ali ne ide dok ne napravi COMIT.

GD

unread,
Oct 28, 2013, 5:33:36 PM10/28/13
to
On 26.10.2013. 9:04, Lero wrote:
Normalno je ukoliko na SQL Serveru koristis (default) isolation level
"read commited". Neki vendori imaju isti isolation level implementiran
na drugi nacin pa nema lockanja readera od strane writera.

Preporucljivo je prije koristenja bilo cega (pa tako i database servera)
detaljno prouciti upute za upotrebu, za konkretan problem je vrlo
korisno sljedece:

http://www.red-gate.com/products/dba/sql-monitor/entrypage/sql-server-concurrency-ebook

Dok ne shvatis o cemu se radi i zasto se dogada, mislim da ti nije
pametno baviti se programiranjem na bazi.

Pozdrav

GD

unread,
Oct 28, 2013, 5:39:01 PM10/28/13
to
Da se nadovezem sam na sebe - od 2005 nadalje postoji i read commited
snapshot, ali nije u tome problem, vec u tome da programer na bazi mora
znati sto je transakcija, odnosno sto i kako radi baza tijekom
transakcije, u protivnom nema puno sanse da napise korektan program.

Pozdrav

Lero

unread,
Oct 29, 2013, 4:17:06 AM10/29/13
to GD
Bilo bi idealno kada bi svi imali savršeno predznaje za određeni posao.

Shvacam o cemu se radi samo ne znam zasto se dogadja.

Zar ovo nije jedan od nacina stjecanja znanja?
Usput, cemu sluzi onda ovaj forum?

lp

GD

unread,
Oct 29, 2013, 4:59:49 PM10/29/13
to
On 29.10.2013. 9:17, Lero wrote:

>>>> imam jednu nedoumicu
>>>> Jel normalno da prilikom rada sa
>>>> BeginTransaction
>>>> ...
>>>> ...
>>>> comit ili rolback
>>>>
>>>> baza je nedostupna za sve ostale korisnike ?!
>>>>
>>>> MSSQL 2008
>>>
>>>
>>> Normalno je ukoliko na SQL Serveru koristis (default) isolation level
>>> "read commited". Neki vendori imaju isti isolation level implementiran
>>> na drugi nacin pa nema lockanja readera od strane writera.
>>>
>>> Preporucljivo je prije koristenja bilo cega (pa tako i database servera)
>>> detaljno prouciti upute za upotrebu, za konkretan problem je vrlo
>>> korisno sljedece:
>>>
>>> http://www.red-gate.com/products/dba/sql-monitor/entrypage/sql-server-concurrency-ebook
>>>
>>>
>>>
>>>
>>> Dok ne shvatis o cemu se radi i zasto se dogada, mislim da ti nije
>>> pametno baviti se programiranjem na bazi.
>>>
>>
>> Da se nadovezem sam na sebe - od 2005 nadalje postoji i read commited
>> snapshot, ali nije u tome problem, vec u tome da programer na bazi mora
>> znati sto je transakcija, odnosno sto i kako radi baza tijekom
>> transakcije, u protivnom nema puno sanse da napise korektan program.
>>
>> Pozdrav
>>
> Bilo bi idealno kada bi svi imali savršeno predznaje za određeni posao.

Naravno, ali nazalost cesto nije tako.

> Shvacam o cemu se radi samo ne znam zasto se dogadja.
> Zar ovo nije jedan od nacina stjecanja znanja?


Znas da ti pacijent ima visoku temperaturu, ne znas zasto, htio bi mu
pomoci, ali nazalost nisi doktor?

Problem je u tome da ja stvarno nemam vremena (a volio bih da imam)
elaborirati sto je to isolation level, koji je od njih i zasto
"pessimistic" ili "optimistic", kakve vrste lockova postoje, sto je row
versioning itd itd. Tema je nazalost preopsirna za dvije-tri recenice pa
sam ti dao hint i link na (po mojem misljenju) izvrsnu publikaciju na tu
temu. Mislim da sam ti puno pomogao, nema na cemu :-)

Uglavnom, ako se ozbiljno bavis programiranjem (na bilo kojoj bazi) bilo
kakve multi-user aplikacije, onda je tu problematiku neophodno razumjeti
- dakle naprosto moras znati kako radi DBMS kojeg koristis.

Pozdrav

Dario

unread,
Oct 29, 2013, 7:24:35 PM10/29/13
to
Grupa služi za prebiranje po svojim iskustvima i dijeljenje istih manje
ili više uspješno. Pitanje mora biti precizno ili se jave teoretičari.

Npr. kako znaš da je baza nedostupna?

GD

unread,
Oct 31, 2013, 3:03:45 PM10/31/13
to
On 30.10.2013. 0:24, Dario wrote:

>>>> Normalno je ukoliko na SQL Serveru koristis (default) isolation level
>>>> "read commited". Neki vendori imaju isti isolation level implementiran
>>>> na drugi nacin pa nema lockanja readera od strane writera.
>>>>
>>>> Preporucljivo je prije koristenja bilo cega (pa tako i database
>>>> servera)
>>>> detaljno prouciti upute za upotrebu, za konkretan problem je vrlo
>>>> korisno sljedece:
>>>>
>>>> http://www.red-gate.com/products/dba/sql-monitor/entrypage/sql-server-concurrency-ebook

>> Shvacam o cemu se radi samo ne znam zasto se dogadja.
>>
>> Zar ovo nije jedan od nacina stjecanja znanja?
>> Usput, cemu sluzi onda ovaj forum?
>>

> Grupa služi za prebiranje po svojim iskustvima i dijeljenje istih manje
> ili više uspješno. Pitanje mora biti precizno ili se jave teoretičari.
>
> Npr. kako znaš da je baza nedostupna?

Pitanje stvarno nije precizno, ali je dovoljno precizno da se shvati u
cemu je problem:

"Nemam neke zahtjevne upite nego upisujem 10-ak slogova u par tablica.
Dok sam testirao transakciju htio sam nešto drugo vidjeti u drugom
prozoru ali ne ide dok ne napravi COMIT. "

Dakle, baza mu nije nedostupna, reader ("nešto drugo vidjeti u drugom
prozoru") nailazi na lock od strane writera ("nego upisujem 10-ak
slogova... ne ide dok ne napravi COMIT").
To je ocekivano i ispravno ponasanje SQL Servera u defaultnoj
konfiguraciji, gdje je read commited isolation level implementiran na
"pesimistican" nacin pa baza stavlja lockove na retke koji dozivljavaju
DML (odnosno lockove na cijeli page, vise page-ova ili pak cijelu
tablicu nakon eskalacije lock-a, ovisno o okolnostima) i na taj nacin
sprjecava ostale readere ili writere da "vide" promijenjene podatke dok
transakcija koja ih mijenja ne odluci hoce li napraviti commit ili rollback.
Od verzije 2005 nadalje postoji (izmedu ostalog) "optimisticna"
varijanta read-commited isolation levela koja se zove "read commited
snapshot", pri cemu tempdb sluzi (uz svoju uobicajenu namjenu) kao
"version store" za prethodne vrijednosti (prije promjene) promijenjenih
podataka, cime se (donekle, u odnosu na neke konkurente) ostvaruje
"multiversion consistency" model. Takav rezim rada baze omogucuje
ostalim session-ima dobivanje read-consistent slike podataka iz trenutka
kada su zapoceli citanje (select), bez obzira mijenjaju li se podaci
koje citaju ili ne. Takva implementacija ima dodatni overhead u obliku
dodatnog IO-a na tempdb, jer se u tempdb moraju zapisivati prethodne
vrijednosti SVIH promijenjenih readaka.

Ako ne razumijes sto sam napisao (ti, OP, ili bilo tko, nemoj shvatiti
osobno), ne zanima te, smatras to nepotrebnim teoretiziranjem, cini ti
se glupo, dosadno ili suvisno, onda je moj dobronamjeran savjet (nakon
15 godina bavljenja bazama, a ne teoretiziranjem) - ili latiti se knjige
(teorije) ili okaniti se programiranja na bilo kojoj bazi.
U protivnom ce rezultat biti neispravan kôd koji u pravilu uzrokuje
logicku korupciju podataka ili pak teske performansne probleme (uslijed
lockova itd) osobito kod vise-korisnisnickih aplikacija.

Pozdrav

mimix

unread,
Nov 2, 2013, 7:11:41 AM11/2/13
to
On 2013-10-29, Lero wrote:
> Usput, cemu sluzi onda ovaj forum?

Ovo nije forum.


--
Milan Mimica
http://sparklet.sf.net

Dario

unread,
Nov 3, 2013, 2:44:07 PM11/3/13
to
Kao što sam i pretpostavljao munjolovac. Uhvatio zaključani slog. Ja ne
uspijevam jer mi uvijek pobigne u tih nekoliko milisekundi.
Što se ljutiš. Evo ja ti zahvaljujem na ovom odgovoru Leru. Ali mi nije
jasno kako možeš donijeti ispravnu poslovnu odluku u "multiversion
consistency" modelu. :-)





Banak Rebanak

unread,
Nov 3, 2013, 4:23:43 PM11/3/13
to
Pardon test optima news servera...
0 new messages