Las bases de datos a menudo conservan un diario antes de la imagen (lo que era antes de la transacción) o un diario posterior (lo que será cuando la transacción se complete). Si tiene una imagen anterior, tiene que ser restaurado en un retroceso. Si mantiene una imagen posterior, debe reemplazar los datos en el caso de una confirmación.
Oracle tiene un espacio de diario y de reversión. El diario de transacciones acumula bloques que luego son escritos por escritores de DB. Dado que estos son asíncronos, casi nada relacionado con el escritor DB tiene ningún impacto en su transacción (si la cola se llena, entonces es posible que tenga que esperar)
Incluso para una transacción solo de consulta, estaría dispuesto a apostar que hay un poco de mantenimiento de registros transaccionales en las áreas de reversión de Oracle. Sospecho que una reversión requiere algo de trabajo por parte de Oracle antes de que determine que no hay nada que retractar realmente. Y creo que esto es sincrónico con tu transacción. Realmente no puede liberar ningún bloqueo hasta que se complete la reversión. [Sí, sé que no está utilizando ninguno en su transacción, pero el problema de bloqueo es por qué creo que se debe liberar una reversión, luego se pueden liberar todos los bloqueos y luego se finaliza su retrotracción.]
Activado Por otro lado, el compromiso es más o menos el resultado esperado, y sospecho que descartar el área de restitución podría ser un poco más rápido. No creó entradas de transacción, por lo que el escritor de db nunca se despertará para comprobar y descubrir que no había nada que hacer.
También espero que, si bien la confirmación puede ser más rápida, las diferencias serán menores. Tan de menor importancia, que quizás ni siquiera sea capaz de medirlos en una comparación lado a lado.
No reconozco esto como una descripción de la forma en que funciona Oracle. Parece una descripción genérica que se ha aplicado a Oracle. Las conjeturas sobre cómo funciona Oracle probablemente no sean útiles. –
Oracle llama a la revista "Redo Log File". Llama a los segmentos de retrotracción un "Deshacer tablas". ¿Sabes cuál es más rápido? ¿Comprometerse o revertirse? –
Si no hay trabajo que hacer, es casi seguro que no haya diferencia. Oracle está optimizado para comprometerse rápidamente; solo requiere que el registro de confirmación se escriba en el búfer de registro de rehacer y se vacíe el búfer (excepto para la confirmación asincrónica en 10g +). Una reversión es más trabajo. –