Apa tingkat Isolasi "Kekacauan" dan kapan itu harus digunakan?


26

Dokumentasi ADO.NET menunjukkan kemungkinan pengaturan tingkat transaksi untuk transaksi SQL ke Chaos. Kedengarannya tidak menyenangkan, tetapi jika fitur itu ada, mungkin itu memiliki beberapa penggunaan yang sah.

Perintah SET TRANSACTION ISOLATION LEVEL di BOL (ah! Lihat, saya bisa menggunakan google dan BOL) sepertinya tidak ada yang bernama "chaos" dan ADO.NET memang memiliki 5 mode yang cocok dengan baik untuk level yang didokumentasikan selain "chaos"

Untuk apa atau siapa level kekacauan ini? (Dan mengapa itu memiliki nama yang tidak ramah?)

Rujukan: ADO.NET enum

Jawaban:


11

Menurut dokumentasi DB2, ini adalah tingkat isolasi yang aneh, di mana perubahan dilakukan ke database segera setelah Anda menjalankannya (untuk dilihat orang lain).

Itu tidak mengatakan secara eksplisit, tetapi, tidak ada roll-back, juga, sejauh yang saya tahu. Pada dasarnya, itu berarti tidak ada transaksi sama sekali . "Kamu bilang 'transaksi', tapi, aku tidak terlalu peduli". Jadi -> kekacauan.

Sebenarnya, saya menemukan dalam beberapa daftar e-mail bahwa "Kekacauan" sebenarnya memetakan ke tingkat transaksi "* NONE" di "DB2 for i".


Chaos adalah isolasi derajat 0 seperti yang dijelaskan oleh Reuter dan Gray dalam teori Pemrosesan Transaksional mereka. Jika Anda berpikir bahwa Baca Tidak Berkomitmen benar-benar berkaitan dengan isolasi data yang sedang dibaca (dan kebetulan tidak sama dengan kekacauan). Kekacauan (seperti tingkat isolasi lainnya) memiliki banyak sifat -salah satu yang paling menarik di antaranya adalah kemampuannya untuk melanggar Gelar 3 (baca berulang yang serialable). Intinya adalah bahwa Kekacauan seharusnya hanya digunakan dalam konteks yang benar (yaitu saya sarankan menjalankan hanya dalam isolasi lengkap untuk set data yang tidak memerlukan rollback).
Mark Broadbent


7

DB2 memiliki tingkat isolasi transaksi yang disebut "Kekacauan":

Properti DB2Connection.ConnectionString - Pusat Pengetahuan IBM

Mungkin itu dimaksudkan untuk digunakan untuk itu. Saya benar-benar tidak yakin, tetapi saya akan menganggap itu berarti tidak ada isolasi transaksi yang dapat ditentukan.


2
Tampaknya hanya untuk Sistem saya. Apakah Anda tahu artinya? Saya tidak dapat menemukan banyak info tentang itu, ia mengatakan tidak ada komit jadi saya menganggap itu berarti bahwa setiap pernyataan dilakukan secara instan. Tapi ini tampaknya ortogonal ke tingkat isolasi, jadi mungkin ada sesuatu yang lain
Lennart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.