Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rollback immediate

3 réponses
Avatar
hugueslouz
Bonjour,
j'ai un traitement qui dure habituellement 25 heures sur une base de données
de 180 GO sur SQL SERVER 2000, qui a été arrêté killé par maladresse, et il
affiche une durée (estimation) de 30 heures pour le rollback.

existe-il un moyen pour forcer ce roollback, je pensais à sortir tous les
users par :

Alter DATABASE SET SINGLE_USER WITH ROOLBACK IMMEDIATE

qu'est ce qui va se passer?
merci de votre aide,

hugueslouz

3 réponses

Avatar
Rudi Bruchez
Bonjour,


j'ai un traitement qui dure habituellement 25 heures sur une base de données
de 180 GO sur SQL SERVER 2000, qui a été arrêté killé par maladresse, et il
affiche une durée (estimation) de 30 heures pour le rollback.

existe-il un moyen pour forcer ce roollback



Non, c'est le principe même d'un environnement transactionnel : tu ne
peux pas te débarrasser d'une transaction comme ça. Le rollback doit
prendre le temps de se faire.

Ceci dit, un traitement de 25 heures, c'est exagérément long. il y a
certainement moyen d'optimiser.

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/
Avatar
Fred BROUARD
hugueslouz a écrit :
Bonjour,
j'ai un traitement qui dure habituellement 25 heures sur une base de données
de 180 GO sur SQL SERVER 2000, qui a été arrêté killé par maladresse, et il
affiche une durée (estimation) de 30 heures pour le rollback.



C'est effectievment horriblement long : pensez à optimiser !!!!





Un rollback est souvent beaucoup plus long que la finalisation en COMMIT
d'une transaction. La raison en est simple: le journal des transactions
est fait pour être lu en avant (et il est optimisé dans ce sens) alors
q'uen arrière, c'est pas terrible. Or on ne peut optimiser les deux.

existe-il un moyen pour forcer ce roollback, je pensais à sortir tous les
users par :

Alter DATABASE SET SINGLE_USER WITH ROOLBACK IMMEDIATE



Comme cela vous allez ajouter à ce rollback le temps du rollback des
autres utilisateurs....


qu'est ce qui va se passer?
merci de votre aide,

hugueslouz



A +


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
hugueslouz
je vous remrecie beaucoup.
Hugueslouz


"Fred BROUARD" a écrit :

hugueslouz a écrit :
> Bonjour,
> j'ai un traitement qui dure habituellement 25 heures sur une base de données
> de 180 GO sur SQL SERVER 2000, qui a été arrêté killé par maladresse, et il
> affiche une durée (estimation) de 30 heures pour le rollback.

C'est effectievment horriblement long : pensez à optimiser !!!!

>

Un rollback est souvent beaucoup plus long que la finalisation en COMMIT
d'une transaction. La raison en est simple: le journal des transactions
est fait pour être lu en avant (et il est optimisé dans ce sens) alors
q'uen arrière, c'est pas terrible. Or on ne peut optimiser les deux.

> existe-il un moyen pour forcer ce roollback, je pensais à sortir tous les
> users par :
>
> Alter DATABASE SET SINGLE_USER WITH ROOLBACK IMMEDIATE

Comme cela vous allez ajouter à ce rollback le temps du rollback des
autres utilisateurs....

>
> qu'est ce qui va se passer?
> merci de votre aide,
>
> hugueslouz

A +


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************