Quelle est la différence entre les procédures stockées et les déclarations préparées ... Et laquelle est la meilleure et pourquoi ... !! J'essayais de google mais je n'ai pas de meilleur article ...
Les procédures stockées sont une séquence d'instructions en langage PL/SQL. Est un langage de programmation implémenté par certains SGBD, qui vous permet de stocker des séquences de requêtes fréquemment appliquées à votre modèle et de partager la charge de traitement avec la couche d'application.
Les instructions préparées sont des requêtes écrites avec des espaces réservés au lieu de valeurs réelles. Vous écrivez la requête et elle est compilée une seule fois par le SGBD, puis vous passez simplement des valeurs à placer dans les espaces réservés. L'avantage d'utiliser des instructions préparées est que vous améliorez considérablement les performances et protégez vos applications de l'injection SQL.
La différence est que vous ne pouvez pas stocker les relevés préparés. Vous devez les "préparer" chaque fois que vous devez en exécuter un. Les procédures stockées, en revanche, peuvent être stockées, associées à un schéma, mais vous devez connaître PL/SQL pour les écrire.
Vous devez vérifier si votre SGBD les prend en charge.
Les deux sont des outils très utiles, vous voudrez peut-être les combiner.
J'espère que cette courte explication vous sera utile!
Les autres réponses ont fait allusion à cela, mais je voudrais énumérer explicitement les avantages et les inconvénients:
Procédures stockées
AVANTAGES:
LES INCONVÉNIENTS
Déclarations préparées
AVANTAGES
LES INCONVÉNIENTS
Pour mon argent, j'irais avec les procédures stockées à chaque fois car elles n'ont besoin d'être écrites et compilées qu'une seule fois. Après cela, chaque appel à la procédure permet de gagner du temps, que vous soyez sur une nouvelle connexion ou non, et que vous appeliez la procédure en boucle ou non. Le seul inconvénient est de devoir passer un peu de temps à apprendre le langage de programmation. Si je n'avais pas l'autorisation d'écrire des procédures stockées, j'utiliserais une instruction préparée, mais seulement si je devais répéter plusieurs fois la même requête plusieurs fois dans la même session.
C'est la conclusion à laquelle je suis parvenu après plusieurs mois de recherche intermittente sur les différences entre ces deux constructions. Si quelqu'un est capable de corriger les mauvaises généralisations que je fais, cela vaudra toute perte de réputation.
Une procédure stockée est stockée dans la base de données - en fonction de la base de données (Oracle, MS SQL Server, etc.) elle est compilée et potentiellement préparée optimisée lorsque vous la créez sur le serveur ...
Une instruction préparée est une instruction qui est analysée par le serveur et un plan d'exécution est créé par le serveur prêt à être exécuté chaque fois que vous exécutez l'instruction ... généralement, il est logique lorsqu'une instruction est exécutée plusieurs fois ... en fonction de la Serveur DB (Oracle etc.) et même parfois des options de configuration ces "préparations" sont soit spécifiques à la session soit "globales" ...
Il n'y a pas de "meilleur" lorsque vous comparez ces deux car ils ont leurs cas d'utilisation spécifiques ...