Rollback immediate

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rudi Bruchez
Le #11865221
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/
Fred BROUARD
Le #11865201
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 *************************
hugueslouz
Le #11865131
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 *************************



Publicité
Poster une réponse
Anonyme