Tuesday, September 28, 2010

SYBASE Services


This article describes the database transaction isolation level on the impact of the lock, by comparing the transaction isolation level 0 and 1, to understand the relationship between the lock and dirty time.

Experiment: set 0 and 1 respectively, isolation level, the implementation of two different but related issues there. The experimental environment is as follows:

1, the right to access the user database (in this case aca_database) and modify database tables and queries have permissions.

2, the database contains tables auths, including salary column (data type is money), there is a certain amount of data (in 1 million lines).


1, as in the same machine, can be performed separately two "SQL Advantage", respectively legitimate account login, prepare their own implementation of a transaction.

2 Open the user interface in their database aca_database, set the isolation level to 1 (also goes for the default value):

set transaction isolation level 1, see the current isolation level using select @ @ isolation

3, the implementation of the first two sentences of the first transaction, suspending and later committed or rolled back.

begin transaction

update auths set salary = salary +100

commit transaction

(Rollback transaction)

4, the implementation of the second transaction select sum (salary) from auths

5, the end of the normal execution of a transaction, but only changes in the memory buffer to complete the transaction and did not really end, do not release the corresponding lock, the second transaction in the wait state. Executable sp_lock and sp_who command.

6, step 3 in order to submit or rollback, the second transaction to be implemented.

7, to change the transaction isolation level is 0, repeat steps 3-4. No change in the first transaction, the second transaction will soon come under the first transaction is made to modify the data results, it seems that the implementation of the response on the first transaction is not subject to influence.

8 Repeat step 6 the end.

Through the above experiments we know that:

1, transaction isolation level 0 allows dirty read transaction isolation level 1, does not allow dirty read, but rather wait for real before the end of a modified transaction and release the lock.

2, isolation level 0, if the modification is to rollback the last transaction, then the query time transaction will not read the correct data.

3, satisfied that there is no rollback transaction possible, and called for greater efficiency and parallel implementation, only then we may consider setting isolation level to 0.

Recommended links:

Flash to MPEG

Switch Network Device

INFOMATION Helpdesk And Remote PC

Easy To Use Graphic CAD

My Experience With AutoCAD Rendering

Baidu's sensual JOURNEY

Year Season: How To Make Cash "flow Up"

SWF to MP4

How to avoid price War

British grams, Novel Medicine 1000 Chain layout help

Shop Audio CD Players

Suspected Of Extortion Donews Producer Liu Ren Denies Allegations

Call of operations of Foreign carriers

Citrix Appoints CAO Heng Kang As vice president and general manager of Greater China


No comments:

Post a Comment