OVH Cloud OVH Cloud

Outil d'administration de base

5 réponses
Avatar
Loïc
Bonjour à tous

J'aimerais connaitre vos différentes expériences concernant l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques combien de dead lock se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et d'après ce que j'ai
pu constater il n'y aucun moyen de configurer d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc

5 réponses

Avatar
Loïc
Re-bonjour,
En fait voici de façon plus concrète ce que j'aimerais parvenir à faire.
En cas de bloquage de base sql-server, j'aimerais être avertis par mail.
Ce mail, pourra contenir, les informations suivantes.
Date du dead lock
Heure du dead lock
Process ayant causé le lock.
Etc.

Je pense que cela est faisable en concevant des requêtes sur les bonnes
tables systèmes.
Auriez vous quelques conseils à m'envoyer à ce sujet.
En vous remerciant d'avance
Loïc
"Loïc" a écrit dans le message de
news:
Bonjour à tous

J'aimerais connaitre vos différentes expériences concernant


l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques combien de dead lock


se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et d'après ce que j'ai
pu constater il n'y aucun moyen de configurer d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc




Avatar
David
Bonjour,

j'ai utilisé ce genre de script pour détecter les
blocages, si ça peut te servir :

Set NoCount On

While 1 = 1
Begin
If (Select count(*) From sysprocesses (nolock)
Where blocked <> 0) > 0 -- Y a-t-il des process bloqués ?
Begin

Print '********************************************
********************************************************'

Print ' ' +
Convert(VarChar, GetDate(), 114)

Print '********************************************
********************************************************'
Print ''
Print '
*** Bloqueur(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where spid In (Select Distinct blocked
From sysprocesses (nolock))
Order By spid, waittype


Print ' ***
Bloqué(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where blocked <> 0
Order By blocked, waittype

Print Convert(VarChar, GetDate(), 114)
Print ''
End
WaitFor Delay '00:00:15'
End


David


-----Original Message-----
Re-bonjour,
En fait voici de façon plus concrète ce que j'aimerais


parvenir à faire.
En cas de bloquage de base sql-server, j'aimerais être


avertis par mail.
Ce mail, pourra contenir, les informations suivantes.
Date du dead lock
Heure du dead lock
Process ayant causé le lock.
Etc.

Je pense que cela est faisable en concevant des requêtes


sur les bonnes
tables systèmes.
Auriez vous quelques conseils à m'envoyer à ce sujet.
En vous remerciant d'avance
Loïc
"Loïc" a écrit dans le message de
news:
Bonjour à tous

J'aimerais connaitre vos différentes expériences




concernant
l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques




combien de dead lock
se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et




d'après ce que j'ai
pu constater il n'y aucun moyen de configurer




d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc






.



Avatar
Philippe [MS]
Bonjour,

Pour optimiser, il est préférable d'utiliser :

IF EXISTS(Select 1 From sysprocesses (nolock) Where blocked <> 0) -- Y
a-t-il des process bloqués ?

plutôt que :

If (Select count(*) From sysprocesses (nolock) Where blocked <> 0) > 0 -- Y
a-t-il des process bloqués ?

Le count(*) peut être couteux !!!

Phil.

"David" wrote in message
news:700e01c4cbcf$7675ffd0$
Bonjour,

j'ai utilisé ce genre de script pour détecter les
blocages, si ça peut te servir :

Set NoCount On

While 1 = 1
Begin
If (Select count(*) From sysprocesses (nolock)
Where blocked <> 0) > 0 -- Y a-t-il des process bloqués ?
Begin

Print '********************************************
********************************************************'

Print ' ' +
Convert(VarChar, GetDate(), 114)

Print '********************************************
********************************************************'
Print ''
Print '
*** Bloqueur(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where spid In (Select Distinct blocked
From sysprocesses (nolock))
Order By spid, waittype


Print ' ***
Bloqué(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where blocked <> 0
Order By blocked, waittype

Print Convert(VarChar, GetDate(), 114)
Print ''
End
WaitFor Delay '00:00:15'
End


David


-----Original Message-----
Re-bonjour,
En fait voici de façon plus concrète ce que j'aimerais


parvenir à faire.
En cas de bloquage de base sql-server, j'aimerais être


avertis par mail.
Ce mail, pourra contenir, les informations suivantes.
Date du dead lock
Heure du dead lock
Process ayant causé le lock.
Etc.

Je pense que cela est faisable en concevant des requêtes


sur les bonnes
tables systèmes.
Auriez vous quelques conseils à m'envoyer à ce sujet.
En vous remerciant d'avance
Loïc
"Loïc" a écrit dans le message de
news:
Bonjour à tous

J'aimerais connaitre vos différentes expériences




concernant
l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques




combien de dead lock
se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et




d'après ce que j'ai
pu constater il n'y aucun moyen de configurer




d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc






.



Avatar
Loïc
Salut, Merci pour ta réponse, j'ai pas retrouvé mon post alors c'est pour
cela que j'ai mis autant de temps à répondre.

Je vais tester le script ci-dessous, par contre, peux tu me dire quelle
stratégie as tu conçu afin d'être averti d'un lock car je vois pas par quel
moyen tu es avertis au moment où celui-ci se produit ?

Le print équivaut il à inscrire l'information dans un fichier plat ?

Salutations
Loïc

"David" a écrit dans le message de
news:700e01c4cbcf$7675ffd0$
Bonjour,

j'ai utilisé ce genre de script pour détecter les
blocages, si ça peut te servir :

Set NoCount On

While 1 = 1
Begin
If (Select count(*) From sysprocesses (nolock)
Where blocked <> 0) > 0 -- Y a-t-il des process bloqués ?
Begin

Print '********************************************
********************************************************'

Print ' ' +
Convert(VarChar, GetDate(), 114)

Print '********************************************
********************************************************'
Print ''
Print '
*** Bloqueur(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where spid In (Select Distinct blocked
From sysprocesses (nolock))
Order By spid, waittype


Print ' ***
Bloqué(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where blocked <> 0
Order By blocked, waittype

Print Convert(VarChar, GetDate(), 114)
Print ''
End
WaitFor Delay '00:00:15'
End


David


-----Original Message-----
Re-bonjour,
En fait voici de façon plus concrète ce que j'aimerais


parvenir à faire.
En cas de bloquage de base sql-server, j'aimerais être


avertis par mail.
Ce mail, pourra contenir, les informations suivantes.
Date du dead lock
Heure du dead lock
Process ayant causé le lock.
Etc.

Je pense que cela est faisable en concevant des requêtes


sur les bonnes
tables systèmes.
Auriez vous quelques conseils à m'envoyer à ce sujet.
En vous remerciant d'avance
Loïc
"Loïc" a écrit dans le message de
news:
Bonjour à tous

J'aimerais connaitre vos différentes expériences




concernant
l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques




combien de dead lock
se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et




d'après ce que j'ai
pu constater il n'y aucun moyen de configurer




d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc






.



Avatar
David
je lançais ce script dans le query analyser je n'avais
donc pas d'alerte à proporement parler, si ce n'est de
consulter régulièrement la fenêtre d'exécution.
Mais il est effectivement possible de faire des envois de
mails à partir d'une procédure (je ne l'ai jamais fait
mais il y a différents fil de discussions dans le groupe
qui en parle)

Cordialement,
David

-----Original Message-----
Salut, Merci pour ta réponse, j'ai pas retrouvé mon post


alors c'est pour
cela que j'ai mis autant de temps à répondre.

Je vais tester le script ci-dessous, par contre, peux tu


me dire quelle
stratégie as tu conçu afin d'être averti d'un lock car je


vois pas par quel
moyen tu es avertis au moment où celui-ci se produit ?

Le print équivaut il à inscrire l'information dans un


fichier plat ?

Salutations
Loïc

"David" a écrit


dans le message de
news:700e01c4cbcf$7675ffd0$
Bonjour,

j'ai utilisé ce genre de script pour détecter les
blocages, si ça peut te servir :

Set NoCount On

While 1 = 1
Begin
If (Select count(*) From sysprocesses (nolock)
Where blocked <> 0) > 0 -- Y a-t-il des process bloqués ?
Begin

Print '********************************************
********************************************************'

Print ' ' +
Convert(VarChar, GetDate(), 114)

Print '********************************************
********************************************************'
Print ''
Print '
*** Bloqueur(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where spid In (Select Distinct blocked
From sysprocesses (nolock))
Order By spid, waittype


Print ' ***
Bloqué(s) ***'
Select Distinct Left(hostname, 15), spid,
Left(program_name, 15), cmd, blocked, waittype,
lastwaittype, status, dbid From sysprocesses (nolock)
Where blocked <> 0
Order By blocked, waittype

Print Convert(VarChar, GetDate(), 114)
Print ''
End
WaitFor Delay '00:00:15'
End


David


-----Original Message-----
Re-bonjour,
En fait voici de façon plus concrète ce que j'aimerais


parvenir à faire.
En cas de bloquage de base sql-server, j'aimerais être


avertis par mail.
Ce mail, pourra contenir, les informations suivantes.
Date du dead lock
Heure du dead lock
Process ayant causé le lock.
Etc.

Je pense que cela est faisable en concevant des requêtes


sur les bonnes
tables systèmes.
Auriez vous quelques conseils à m'envoyer à ce sujet.
En vous remerciant d'avance
Loïc
"Loïc" a écrit dans le message de
news:
Bonjour à tous

J'aimerais connaitre vos différentes expériences




concernant
l'administration
sql server.

En effet, j'aimerais savoir grâce à des statistiques




combien de dead lock
se
sont produits à quel moment (date, heure) etc.

Car j'utilise pour le moment uniquement SQL manager et




d'après ce que j'ai
pu constater il n'y aucun moyen de configurer




d'éventuelle alarme sur des
événements de dead locks (par exemple)

En vous remerciant d'avance
Loïc






.





.