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 :

Compiler procédure stockée


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 176
    Par défaut Compiler procédure stockée
    Bonjour,

    Je voulais savoir s'il était possible de compiler une procédure déjà créé ?
    Mon souhait étant d'éviter de rentrer dans la procédure pour faire un F5 (ALTER PROCEDURE XXX), et donc de compiler une proc comme :
    compile dbo.XXX

    Est ce possible ? Je précise que je ne veux pas executer la procedure, juste la (re)compiler.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Par défaut
    WITH RECOMPILE indiquera de recompiler la procédure lors de la prochaine exécution.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Pour faire ce que tu veux, il faut utiliser la procédure système sys.sp_refreshsqlmodule
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @ProcName NVARCHAR(776) -- nom de la procédure, qualifié, en plusieurs parties 
    SET @ProcName = N'dbo.MaProcedure' 
    EXEC sys.sp_refreshsqlmodule @ProcName
    Il existe une autre fonction système appelée sp_recompile dont le nom peut préter à confusion ! Il ne s’agit pas de générer un code binaire de la procédure ! Il s’agit de la recompilation des plans d’execution :
    "Certaines modifications apportées à une base de données peuvent rendre un plan d'exécution inefficace ou non valide, en fonction du nouvel état de la base de données. SQL Server détecte ce type de modifications et marque le plan comme non valide. Il faut donc recompiler un nouveau plan pour la prochaine connexion qui exécute la requête. Les conditions qui provoquent l'invalidité d'un plan sont les suivantes :
    - Les modifications apportées à une table ou à une vue référencée par la requête (ALTER TABLE et ALTER VIEW).
    - Les modifications apportées à des index utilisés par le plan d'exécution.
    - Les mises à jour de statistiques utilisées par le plan d'exécution, générées explicitement à partir d'une instruction, telle que UPDATE STATISTICS, ou automatiquement.
    - La suppression d'un index utilisé par le plan d'exécution.
    - Un appel explicite de sp_recompile.
    - Un nombre important de modifications de clés (générées par les instructions INSERT ou DELETE des autres utilisateurs qui modifient une table référencée par la requête).
    - Pour les tables contenant des déclencheurs, si le nombre de lignes des tables inserted ou deleted augmente de manière significative.
    - L'exécution d'une procédure stockée à l'aide de l'option WITH RECOMPILE."

    PS : La fonction sys.sp_refreshsqlmodule est celle qui correspond le mieux à ce que tu veux faire
    : "… Eviter de rentrer dans la procédure ..alter procedure .. et faire le F5 …"

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/06/2011, 14h51
  2. compiler un package de procédures stockées
    Par Australia dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 22/11/2007, 11h41
  3. Soucis compilation procédures stockées
    Par kyrsa dans le forum DB2
    Réponses: 3
    Dernier message: 18/07/2006, 11h30
  4. [SYBASE]Compilation procédures stockées
    Par esl-ta dans le forum Sybase
    Réponses: 1
    Dernier message: 22/11/2004, 12h42
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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