Empecher d'exeuter une SP plusieurs fois en meme temps
4 réponses
Mark
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour
qu'elle soit excutée
par plusieurs threads (ou instances d'application) en meme temps ?.
On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme
temps
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bouarroudj Mohamed
Vous pouvez utiliser sp_getapplock et sp_releaseapplock, voir BOL pour plus d'information
L'exemple ci-dessous essaie (durant une seconde) d'avoir le token (ou la ressource) : 'VotreTokenName', s'il ne reussi pas il affiche un message et quitte la SP avec un code de retour -1
exec @Result = master.dbo.sp_getapplock @Resource = 'VotreTokenName' @LockMode = 'Exclusive', @LockOwner = 'Session', @LockTimeout = 1000 -- time out value in milliseconds
if @Result < 0 begin print 'SP en cours d''execution par d''autres procresses...' return -1 end
... votre code
Lorsque vous avez fini avec votre token vous pouvez le liberer avec
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
Vous pouvez utiliser sp_getapplock et sp_releaseapplock, voir BOL pour plus
d'information
L'exemple ci-dessous essaie (durant une seconde) d'avoir le token (ou la
ressource) : 'VotreTokenName', s'il ne reussi pas il affiche un message et
quitte la SP avec un code de retour -1
exec @Result = master.dbo.sp_getapplock
@Resource = 'VotreTokenName'
@LockMode = 'Exclusive',
@LockOwner = 'Session',
@LockTimeout = 1000 -- time out value in milliseconds
if @Result < 0
begin
print 'SP en cours d''execution par d''autres procresses...'
return -1
end
... votre code
Lorsque vous avez fini avec votre token vous pouvez le liberer avec
"Mark" <sauvemark@yahoo.com> wrote in message
news:O3Fr$lf5FHA.1864@TK2MSFTNGP12.phx.gbl...
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour
qu'elle soit excutée
par plusieurs threads (ou instances d'application) en meme temps ?.
On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme
temps
Vous pouvez utiliser sp_getapplock et sp_releaseapplock, voir BOL pour plus d'information
L'exemple ci-dessous essaie (durant une seconde) d'avoir le token (ou la ressource) : 'VotreTokenName', s'il ne reussi pas il affiche un message et quitte la SP avec un code de retour -1
exec @Result = master.dbo.sp_getapplock @Resource = 'VotreTokenName' @LockMode = 'Exclusive', @LockOwner = 'Session', @LockTimeout = 1000 -- time out value in milliseconds
if @Result < 0 begin print 'SP en cours d''execution par d''autres procresses...' return -1 end
... votre code
Lorsque vous avez fini avec votre token vous pouvez le liberer avec
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
Fred BROUARD
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
Le plus simple est de piloter une transaction au niveau d'isolation
SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour
qu'elle soit excutée
par plusieurs threads (ou instances d'application) en meme temps ?.
On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme
temps
Merci.
--
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.datasapiens.com ***********************
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
Mark
C'est une procedure qui lit un repertoire continuellement et lorsque elle trouve des fichiers texts, elle fait un bulk insert et je voulais pas que qu'un fichier soit traité deux fois. Je pense que la meilleur facon sera de creer un SQL Job
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" wrote in message news:
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
C'est une procedure qui lit un repertoire continuellement et lorsque elle
trouve des fichiers texts, elle fait un bulk insert et je voulais pas que
qu'un fichier soit traité deux fois.
Je pense que la meilleur facon sera de creer un SQL Job
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:OXmvqCk5FHA.636@TK2MSFTNGP10.phx.gbl...
Le plus simple est de piloter une transaction au niveau d'isolation
SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour
qu'elle soit excutée
par plusieurs threads (ou instances d'application) en meme temps ?.
On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme
temps
Merci.
--
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.datasapiens.com ***********************
C'est une procedure qui lit un repertoire continuellement et lorsque elle trouve des fichiers texts, elle fait un bulk insert et je voulais pas que qu'un fichier soit traité deux fois. Je pense que la meilleur facon sera de creer un SQL Job
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" wrote in message news:
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
Fred BROUARD
Mark a écrit:
C'est une procedure qui lit un repertoire continuellement et lorsque elle trouve des fichiers texts, elle fait un bulk insert et je voulais pas que qu'un fichier soit traité deux fois. Je pense que la meilleur facon sera de creer un SQL Job
Oh que oui et de déplacer ou supprimer le fichier une fois letraitement réalisé.
A +
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" wrote in message news:
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
-- 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.datasapiens.com ***********************
Mark a écrit:
C'est une procedure qui lit un repertoire continuellement et lorsque elle
trouve des fichiers texts, elle fait un bulk insert et je voulais pas que
qu'un fichier soit traité deux fois.
Je pense que la meilleur facon sera de creer un SQL Job
Oh que oui et de déplacer ou supprimer le fichier une fois letraitement réalisé.
A +
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:OXmvqCk5FHA.636@TK2MSFTNGP10.phx.gbl...
Le plus simple est de piloter une transaction au niveau d'isolation
SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5
http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour
qu'elle soit excutée
par plusieurs threads (ou instances d'application) en meme temps ?.
On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme
temps
Merci.
--
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.datasapiens.com ***********************
--
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.datasapiens.com ***********************
C'est une procedure qui lit un repertoire continuellement et lorsque elle trouve des fichiers texts, elle fait un bulk insert et je voulais pas que qu'un fichier soit traité deux fois. Je pense que la meilleur facon sera de creer un SQL Job
Oh que oui et de déplacer ou supprimer le fichier une fois letraitement réalisé.
A +
Merci a vous deux de vos reponses, j'ai appris quelque choses.
"Fred BROUARD" wrote in message news:
Le plus simple est de piloter une transaction au niveau d'isolation SERIALIZABLE. Mais gare aux blocages possibles. Soyez judicieux...
A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.5 http://sqlpro.developpez.com/cours/sqlserver/transactsql/#L4.6
Que voulez-vous faire exactement ?
A +
Mark a écrit:
Bonjour,
Ext ce que il existe une methode pour empecher une procedure stockée pour qu'elle soit excutée par plusieurs threads (ou instances d'application) en meme temps ?. On faite je veux que ma SP ne peut s'executer deux fois ou plus en meme temps
Merci.
-- 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.datasapiens.com ***********************
-- 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.datasapiens.com ***********************