Procedure stockee

Procedure stockee

Procédure stockée

Une procédure stockée (ou stored procedure en anglais) est un ensemble d'instructions SQL pré-compilées, stockées sur le serveur, directement dans la base de données. Elles peuvent être exécutées sur demande : lancées par un utilisateur, un administrateur DBA ou encore de façon automatisée par un événement déclencheur (de l'anglais "trigger").

Il existe des procédures stockées pour ce qui est de la manipulation de données comme pour le 'tuning de base'.

Sommaire

Fonctionnement

Les requêtes envoyées à un serveur SQL font l'objet d'une 'analyse syntaxique' puis d'une interprétation avant d'être exécutées. Ces étapes sont très lourdes si l'on envoie plusieurs requêtes complexes.

Les procédures stockées répondent à ce problème : une requête n'est envoyée qu'une unique fois sur le réseau puis analysée, interprétée et stockée sur le serveur sous forme exécutable (pré-compilée). Pour qu'elle soit exécutée, le client n'a qu'à envoyer une requête comportant le nom de la procédure stockée.

On peut ainsi passer des paramètres à une procédure stockée lors de son appel, et recevoir le résultat de ses opérations comme celui de toute requête SQL.

Intérêts

  • simplification : code plus simple à comprendre[1]
  • rapidité : moins d'informations sont échangées entre le serveur et le client
  • performance : économise au serveur l'interprétation de la requête car elle est précompilée[2]
  • sécurité : les applications et les utilisateurs n'ont aucun accès direct aux tables, mais passent par des procédures stockées prédéfinies

Syntaxe

Création de la procédure stockée sous SQL Server:

CREATE PROCEDURE [PROC_Nom]
@parametre1 son_type,
@parametre2 son_type,
@parametre3 son_type
AS 
 DECLARE @ma_variable son_type
 
 SELECT nom_champ
 FROM ma_table
 WHERE condition


Exécution de la procédure stockée :

EXECUTE [PROC_Nom] parametre1, parametre2, parametre3

Exemple

Code PL/pgSQL (PostgreSQL) pour la création d'une procédure stockée générant un identifiant pour un nouvel utilisateur :

  CREATE FUNCTION genererIdUser() RETURNS OPAQUE AS
  DECLARE
         iduser integer;
  BEGIN
         SELECT INTO iduser MAX(id_user) FROM user;
         IF iduser ISNULL THEN
                iduser := 0;
         END IF;
         NEW.id_user := iduser + 1;
         RETURN NEW;
  END;
  LANGUAGE 'plpgsql';

Code pour appeler la procédure stockée :

   EXECUTE PROCEDURE genererIdUser()

Articles connexes

Références

Liens externes

Ce document provient de « Proc%C3%A9dure stock%C3%A9e ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Procedure stockee de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Procédure stockée — En informatique, dans la technologie des bases de données, une procédure stockée (ou stored procedure en anglais) est un ensemble d instructions SQL pré compilées, stockées dans une base de données et exécutées sur demande par le SGBD qui… …   Wikipédia en Français

  • MSSQL — Microsoft SQL Server SQL Server Développeur Microsoft Dernière …   Wikipédia en Français

  • Microsoft SQL Server — SQL Server Développeur Microsoft Dernière version 2008 ( …   Wikipédia en Français

  • MsSQL — Microsoft SQL Server SQL Server Développeur Microsoft Dernière …   Wikipédia en Français

  • SQL Server — Microsoft SQL Server SQL Server Développeur Microsoft Dernière …   Wikipédia en Français

  • SQL Server 2000 — Microsoft SQL Server SQL Server Développeur Microsoft Dernière …   Wikipédia en Français

  • SSRS — Microsoft SQL Server SQL Server Développeur Microsoft Dernière …   Wikipédia en Français

  • Transaction informatique — En informatique, et particulièrement dans les bases de données, une transaction telle qu une réservation, un achat ou un paiement est mise en œuvre via une suite d opérations qui font passer la base de données d un état A antérieur à la… …   Wikipédia en Français

  • Déclencheur — En programmation procédurale, un déclencheur (trigger en anglais) est un dispositif logiciel qui provoque un traitement particulier en fonction d événements prédéfinis. Par extension, c est l événement lui même qui est qualifié de déclencheur.… …   Wikipédia en Français

  • Structured Query Language — SQL Apparu en 1974 Auteur Donald D. Chamberlin et Raymond F. Boyce Développeur IBM Dernière version stabl …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”