IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

SqlServer locké, solution en PHP ? SQL ? [URGENT]


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 9
    Points
    9
    Par défaut SqlServer locké, solution en PHP ? SQL ? [URGENT]
    Ici, un soucis sous PHP avec SQLServer, je ne sais pas si la/les solutions sont des requêtes SQL ou fonctions PHP c'est pourquoi j'expose mon pb ici, si vous trouvez une solution ça serait super sympa car c'est un cas important : Voici la difficultés rencontrée : un développement PHP auquel je n'ai pas un accès complet bloque régulièrement la base SqlServer voici mes hypothèses ci-dessous :

    - Existe-il un mode optimiste à configurer permettant d'éviter ces process bloqués ?
    - Est-il possible de demander à ne pas prendre en compte tout simplement les instruction lock implicites et explicites ?
    - Enfin, si une solution en natif ne fonctionne pas existe - t - il des sources SQL permettant de débloquer tout simplement les enregistrements bloqués ?

    Si vous voyez d'autres solutions/hypothèses pour résoudre ce problème, je répète que je n'ai pas accès au scripts PHP mais par contre une solution en PHP peut être ellaborée sur la partie de code PHP existante. Merci beaucoup à l'avance.

    Cédric

  2. #2
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 45
    Points : 48
    Points
    48
    Par défaut
    D'après mon expérience les problèmes de lock non libérés viennent toujours du client c'est-à-dire PHP en l'occurence (je sais à ce sujet qu'il y a pour une certaine version des pb avec les connexions persistantes...).

    Côté SQL pour libérer les verrous il faut le faire à la main. Il y a qlq temps j'ai écrit une procédure pour cela, que j'exécute régulièrement par tache plannifiée (à adapter selon les besoins) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    CREATE   PROCEDURE AutoKiller AS
    declare @dlimite datetime
    set @dlimite = dateadd(s,-30,getdate()) -- requete de plus de 30s
    Declare @spid int
    Declare @blocked int
    Declare @Connexion datetime
    Declare @Execution datetime
     
    set @nomServeur = 'ALPHEEDBP03'
    select TOP 1 @spid=spid,
    	@Execution=last_batch,
    	@Connexion=login_time,
    	@blocked=blocked
     from master.dbo.sysprocesses with (nolock)
     where spid in (
    	select req_spid
    	 from master.dbo.syslockinfo with (nolock)
    	where rsc_objid in (
    		select id from master.dbo.syslocks with (nolock)
    		where id>0)
    	AND req_status=1
    	AND rsc_objid>0
    	AND db_name(rsc_dbid) = '<NomBaseASurveiller>'
    	) 
     and @dlimite>last_batch
    order by last_batch 
     
    if @@rowcount>0 
    BEGIN
     
    WAITFOR DELAY '000:00:01'
     
    IF @spid in (select spid from master.dbo.sysprocesses with (nolock)
     where spid in (select spid from master.dbo.syslocks with (nolock) where id>0)
    	AND db_name(dbid) = '<nomBaseASurveiller>'
    	AND @dlimite>last_batch)
     
    	BEGIN
    		EXEC ('KILL ' + @spid )
    	END
    END
    GO

Discussions similaires

  1. [SQLSERVER] Connect by prior sous SQL Server
    Par marsup54 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/03/2006, 09h49
  2. [SQL-Server] Renseignements php <-> sql server
    Par mic79 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/10/2005, 11h36
  3. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  4. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  5. [PHP & Postgresql] urgent please
    Par garou51 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/06/2003, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo