Danh mục tài liệu

Bài 3 Transaction và Lock

Số trang: 17      Loại file: ppt      Dung lượng: 116.50 KB      Lượt xem: 20      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

.NhắclạiNhắclạikiếnthứclậptrìnhvớiTSQL: Kháiniệmvềbólệnh(Batch)vàtiếntrìnhxử lýBatch, Biến
Nội dung trích xuất từ tài liệu:
Bài 3 Transaction và Lock Bài3TransactionvàLock NhắclạiNhắclạikiếnthứclậptrìnhvớiTSQL: Kháiniệmvềbólệnh(Batch)vàtiếntrìnhxử lýBatch Biến CáchàmcơbảncủaSQLServer Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 2 trong 17 Mụctiêu Nắmđượckháiniệmgiaodịch(transaction) Nắm được các khái niệm về thuộc tính, phân loại, tínhriêngbiệtvàmứcđộriêngbiệtcủagiaodịch Sửdụngcáckháiniệmvềtransactionđểthựcthigiao dịchSQLTransactionvàtậplệnh(batch) Nắm được các khái niệm khóa (lock) và khóa chết (deadlock) Giải quyết các deadlock bằng cách đặt mức độ ưu tiênchocáctransaction Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 3 trong 17 Giớithiệu Giaodịch(Transaction)làmộtđơnvịcông việc Một transaction hoặc là sẽ thực hiện thành công hoàn toàn hoặc là sẽ không thay đổi mộtchútdữliệunào Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 4 trong 17CácthuộctínhTransaction Tínhhoànchỉnh(Atomicity) Tínhnhấtquán(Consistency) Tínhriêngbiệt(Isolation) Tínbềnvững(Durability) Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 5 trong 17 PhânloạiTransaction Giaodịchtườngminh(Explicittransaction) Giaodịchngầmđịnh(Implicittransaction) Giaodịchxácnhận(Committransaction) Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 6 trong 17 TransactionIsolationvà IsolationLevels ReadUncommitted ReadCommitted Repeatableread Serializable Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 7 trong 17 SửdụngTransactionLog Nhậtkýgiaodịch(Transactionlog)làmộtFileriêngbiệt(hoặclưu ởvùng đĩariêng) ởtrongdatabaseservernólưutrữdấuvếtthực hiệncủacácthaotác Bằng cách lưu trữ dấu vết thực hiện trong têp nhật ký (log), databaseserverdễdàngkhôiphụclạidữliệukhigặpsựcố Transactionlogđảmbảotínhhoànchỉnhvàtínhbềnvững SQLServerviếttấtcảcácthay đổitrênCSDLxuốngtransaction log, vì vậy nếu transaction đã bắt đầu nhưng chưa chạy xong, chúngtavẫncóthểphụchồilạitấtcảcácthayđổitừfilelog Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 8 trong 17 TransactionvớiTSQL BEGINTRANSACTION COMMITTRANSACTION ROLLBACKTRANSACTION SAVETRANSACTION Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 9 trong 17 Locks Khóa(Lock)đượcsinhrađểgiớihạnquyềntruynhập trênmôitrườngđangườidùng MicrosoftSQLServer2000sửdụnglock để đảmbảo tínhtoànvẹncủatransactionvàtínhthốngnhấtcủa database Nếu lock không được sử dụng, dữ liệu bên trong CSDL có thể bị sai về logíc, và các query chạy trên đósẽđưaracáckếtquảkhôngmongđợi Bảnchấtcủalocklàviệcmộtngườimuốntruynhập riêngvàomộtbảng,vìvậyserversẽlockbảng đólại choriêngngườiđó Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 10 trong 17PhânloạicácLockstrongSQL Server PessimisticLock OptimisticLock SharedLocks ExclusiveLocks UpdateLocks Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 11 trong 17 Deadlock Một deadlock xảy ra khi có 2 người dùng (hoặc 2 phiên làm việc) đã đặtkhóatrên2 đốitượngriêng,vàmỗiusermuốn đặt khóa trên đối tượng của user kia. Mỗi user đều phài đợi người kiagiảiphóngkhóacủahọrađểmìnhcóthểđặtkhóa. SQLServertự độngnhậnradeadlockvàgiảiquyếtbằngcách chọnmộtứngdụngvàbắtnóphảigiảiphóngkhóa,trongkhiđó vẫnchoứngdụngcònlạichạytiếp. Cáchtốtnhất đểtránhdeadlocklàtránhnó.Mộtcách đểtránh nólàkhôngchạycáctransactionđồngthời. Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 12 trong 17 GiảiquyếtDeadlock SETDEADLOCK_PRIORITY SETLOCK_TIMEOUT Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 13 trong 17 Tómtắt Quátrìnhtruynhậpvàthay đổinộidungCSDL đượcgọilàgiao dịch(transaction) Một transaction có thể thao tác cả đọc lẫn ghi. Khi transaction được thực hiện bởi nhiều user có thể sẽ chạy đồng thời và truy nhậplẫncácđốitượngcủaCSDL. CácthuộctínhcủaTransactionlà:  Atomicity  Consistency  Isolation  Durability CácthuộctínhtrêncònđượcgọilàthuộctínhACID Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 14 trong 17 Tómtắt(tiếp)… Cáctransactioncóthểphânloạinhưsau:  Explicittransaction  Implicittransaction  Committransaction Chuẩn ANSI SQL quy định 4 mức độ chạy riêng biệt c ...