|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mars 2003 Messages : 113 ![]() |
Bonjour,
J'aimerais savoir quelle est la différence entre procedure stockée et procedure coté client. Mis à part le fait que ce sont des procedure sauvegardés dans la base, donc j'imagine que leur execution est plus rapide, qu'elles vont bénéficier de la sauvegarde automatique et qu'elles seront facilement partageable et gérable. Quel autre interet y'a t il a stocker les procedures et quelles sont les particularités de ces procedures ?. Y'a t il un traitement particulier pour les procedures stockées ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Si tu mets une procédure sur ton appli cliente, elle ne sera pas disponible quand tu utiliseras une autre appli cliente. Tout passer en proc stock permet ainsi de rendre la base autonome par rapport à ses applis, et de ne pas tout redévelopper dans chaque appli. De cette façon, chaque couche est mieux spécialisée sur son rôle : la couche de données s'occupe de tout ce qui est traitement des données, et la couche applicative s'occupe de l'interaction avec les utilisateurs.
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Voir aussi ce que dit le
Application Developer's Guide - Fundamentals. |
|
|
00
|
|
|
#4 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
L'intêret peut être réellement important.
1/ vitesse : par exemple des traitements locaux faisant intervenir plusieurs dizaines de requêtes et exécutés des milliers des fois sont passer leur temps a faire du ping pong sur le réseau et le temps final (en fonction du traitement) sera en partie du aux roundtrips client/serveur. Avec du pl/sql, les fonctions sont précompilées dans la base et donc plus (ou beaucoup moins) de ping pong. Nous avions au taf un traitement de génération pour chaque patient dans notre appli a exécuter des milliers de fois d'affilé depuis un client lourd. Nous avons passé le code (des dizaines de requetes très lourdes et mettant en oeuvre beaucoup de jointures en PL/SQL. Il ne restait que les appels du client : Résultat : la ou il fallait 30 minutes de traitement total, il ne fallai plus que 2 à 3 minutes. 2 / la réusabilité du code : nous avions notre base Oracle, un appli client serveur developpée avec un 4GL, un intranet en java, des interfaces avec d'autres systèmes en C, des pocket pc qui synchronisent avec un serveur de syncho en C++, .. Bref, tout ce beau monde faisait plus ou moins la même chose. Mais les "même" traitements que l'on retrouvait dans les 5 vecteurs était écris chacun dans un langage différent, à des période différentes, parfois par des personnes différentes, ... Donc, au final, aucun des traitements partagés était différent !!! Impossible à maintenir et a faire évoluer ! Donc, un beau jour, nous avons pris tout le code commun, crée des packages PL/SQL, avons supprimé les anciens codes par des appels PL/SQL... Et là le bonheur : code identique depuis 5 languages et applications différentes. En cas de bug ou d'évolution, 1 seule source à modifier et qui plus est dans un bloc note si faut ! pas re-recompilation à la chaine, ... J'espère que cela t'aura éclairé sur les avantages des procédures stockées. Surtout que le PL/SQL est le language serveur le plus évolué de tout ceux proposé par des SGDB.. tu faire ce que tu veux (mail, socket, xml, ....)
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#5 | |
|
Membre expérimenté
![]() ![]() Inscription : décembre 2003 Messages : 480 ![]() |
Citation:
__________________
*** OPN Exadata Specialist *** *** OCE Performance Tuning 11g *** *** OCE Rac 10g *** *** OCP DBA 9i-10g-11g *** |
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : mars 2003 Messages : 113 ![]() |
Merci à tous
|
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
Un dernier truc : c'est aussi beaucoup plus facile de mener une étude d'impact dans les procédures stockées que sur des scripts stockés un peu partout sur le serveur et dont le recensement n'est jamais sûr à 100%
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Il y a quand même un inconvenient liée au fait que le language PL/SQL fonctionne que avec Oracle
|
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Les autres SGBD ont des dialectes SQL dynamique (T-SQL pour SQL Server et Sybase). La norme SQL prévoit même un SQL dynamique normalisé.
|
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Citation:
![]() Mais peut être j'ai raté quelque chose ... |
|
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Pourquoi ? Le SQL est statique, le PL/SQL est en la partie dynamique sous Oracle (donc un dialecte) et le T-SQL est son équivalent sous SQL Server.
|
|
|
00
|
|
|
#12 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Excusez moi, mais on ne peut pas comparer PL/SQL et T-SQL.
Le PL/SQL est language devenu au fil du temp "généraliste" et il est désormais possible de tout faire et de coder des application entières 100% PL/SQL avec support complets de toutes fonctionnalités des 4GL et outils actuels (xml, mail, socket, math, file I/O, ...) MS T-SQL est de loin moins puissant. C'est un peu le parent pauvre des languages procéduraux serveurs des SGDB
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Du point de vue Oracle, il ne faudrait pas parler de SQL dynamique pour PL/SQL car le SQL dynamique a un sens particulier. Le standard de langage de procédures stockées s'appelle SQL/PSM: Persistent Stored Modules. Je pense qu'il faudrait plutôt parler de language de procédures stockées.
Historiquement, PL/SQL est très proche du langage ADA, langage conçu par une société française qui avait remporté un appel d'offre du ministère de la défense américain dans les années 80 afin d'unifier tous les langages de programmation de toutes les applications (gestion, temps réel embarqué, etc.). |
|
|
00
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
|
|
|
00
|
|
|
#15 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#16 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Qui parle d'interaction utilisateur ??
Pas moi... Quand je parle d'application, c'est tout le code applicatif, fonctionnel, métier, traitement, communication, échanges, .... Il est évident que PL/SQL ne gère pas de fenêtre Windows, etc... Ecrans de saisie mis à part , des applications peuvent être entièrement codées en PL/SQL.
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#17 | |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Citation:
|
|
|
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Faut-il comprendre que toutes les langages qui utilisent des boucles, des variables, etc. sont des langages dynamiques ? Pourriez-vous nous indiquer le(s) lien(s) où ce terme est défini ou employé de la façon que vous le fait ?
|
|
|
00
|
|
|
#19 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com