¿Cuál es el nivel de aislamiento del "Caos" y cuándo debe usarse?


26

La documentación de ADO.NET muestra la posibilidad de establecer el nivel de transacción para una transacción SQL en Caos. Suena desagradable, pero si la función está ahí, presumiblemente tiene algún uso legítimo.

El comando SET TRANSACTION ISOLATION LEVEL en BOL (ah, vea, puedo usar google y BOL) nada parece llamarse "caos" y ADO.NET tiene 5 modos que coinciden muy bien con los niveles documentados además del "caos"

¿Para qué o para quién es este nivel de Caos? (¿Y por qué tiene un nombre hostil?)

Refs: la enumeración de ADO.NET

Respuestas:


11

De acuerdo con la documentación de DB2, es un nivel de aislamiento extraño, donde los cambios se confirman en la base de datos tan pronto como los ejecuta (para que otros lo vean).

No dice explícitamente, pero, por lo que puedo decir, tampoco hay reversión. Básicamente, significa que no hay ninguna transacción . "Dices 'transacción', pero realmente no me importa". Así -> caos.

En realidad, encontré en alguna lista de correo electrónico que "Caos" en realidad se asigna al nivel de transacción "* NINGUNO" en "DB2 para i".


El caos es el aislamiento de grado 0 como lo explican Reuter y Gray en su teoría del procesamiento transaccional. Si cree que Leer sin confirmar realmente se relaciona con el aislamiento de los datos que se leen (y, por cierto, no es lo mismo que el caos). El caos (como cualquier otro grado de aislamiento) tiene muchas propiedades, una de las más interesantes es su capacidad para violar el Grado 3 (lectura repetible serializable). La conclusión es que Chaos solo debe usarse en el contexto correcto (es decir, sugeriría que se ejecute solo de forma completa para los conjuntos de datos que no requieren reversión).
Mark Broadbent el


7

DB2 tiene un nivel de aislamiento de transacción llamado "Caos":

Propiedad DB2Connection.ConnectionString - IBM Knowledge Center

Quizás esté destinado a ser utilizado para eso. Realmente no estoy seguro, pero supongo que significa que no hay aislamiento de transacción definible.


2
Parece ser solo para el Sistema i. ¿Sabes lo que significa? No puedo encontrar mucha información al respecto, dice que no hay compromiso, así que supongo que significa que cada declaración se confirma al instante. Pero esto parece ortogonal al nivel de aislamiento, por lo que probablemente haya algo más
Lennart el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.