OVH Cloud OVH Cloud

callable statements

2 réponses
Avatar
Pif
Bonjour, quel est l'intéret de ces procédures stockées par rapport aux
prepared Statements ?

sont ils beaucoup plus rapide ? quelles sont les conditions de leur
intéret ?

Merci !

2 réponses

Avatar
Fred Brouard - SQLpro
Une procédure stockée, comme son nom l'indique est située dans le serveur
contrairement à un ordre SQL même "préparé".

Dans le serveur signifie :
1) la compilation de la procédure a déjà eu lieu et toutes les info de
préparation sont stockée avec tant que le serveur est actif (en principe 24h/24,
7J/7)
2) il n'y a pas d'aller et retour sur le réseau

Pour un ordre SQL "préparé"
1) la préparation a lieu chaque fois que l'application est lancée
2) il y a des aller et retour réseau.


Exemple :
un code client (ordre SQL préparés) insere dans une table puis fait 2 update et
un select final =>
8 aller et retour d'information sur le réseau

ce mème code en une procédure :
un seul aller et retour...

Le gain de temps est énorme, et la contention (temps de verouillage) minimisée.

A lire : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L6

A +


Pif a écrit:
Bonjour, quel est l'intéret de ces procédures stockées par rapport aux
prepared Statements ?

sont ils beaucoup plus rapide ? quelles sont les conditions de leur
intéret ?

Merci !



--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Pif
Le CS étend les fonctions du PS.
Si dans un CS je met à jour certains parametres "?" avant d'exécuter ?
Est-ce que les allers retours réseaux sont plus important, et sont ils
équivalent à un PS ?

Quand tu compare le CS et le PS avec 1 AR contre 8, tu obtient
normalement le meme nombre d'allers retours que le CS en faisant un
PS.batch() non ?

Est-ce simplement un PS stocké sur un serveur afin de conserver les
optimisations et statistiques de requetes contrairement à d'autres
statements ?

Merci !