Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2008, 12h01   #1
Membre du Club
 
Avatar de links
 
Inscription : mars 2003
Messages : 113
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 113
Points : 68
Points : 68
Par défaut Procedures stockées vs autres procedures

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
links est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 13h51   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
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.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 14h15   #3
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Voir aussi ce que dit le
Application Developer's Guide - Fundamentals
.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 21h30   #4
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 08h49   #5
Membre expérimenté

 
Inscription : décembre 2003
Messages : 480
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 480
Points : 539
Points : 539
Citation:
Envoyé par links
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.
c'est déjà pas mal
__________________

*** OPN Exadata Specialist ***
*** OCE Performance Tuning 11g ***
*** OCE Rac 10g ***
*** OCP DBA 9i-10g-11g ***
Marc Musette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 14h25   #6
Membre du Club
 
Avatar de links
 
Inscription : mars 2003
Messages : 113
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 113
Points : 68
Points : 68
Merci à tous
links est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 16h15   #7
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
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 !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 17h10   #8
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

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

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Il y a quand même un inconvenient liée au fait que le language PL/SQL fonctionne que avec Oracle
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 17h22   #9
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
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é.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 21h06   #10
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

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

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Citation:
Envoyé par Antoun Voir le message
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é.
Désolé, mais caractériser PL/SQL voir T-SQL, etc. comme des «dialectes SQL dynamique » c'est être complètement dans le choux.
Mais peut être j'ai raté quelque chose ...
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 21h15   #11
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par mnitu Voir le message
Désolé, mais caractériser PL/SQL voir T-SQL, etc. comme des «dialectes SQL dynamique » c'est être complètement dans le choux.
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.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 07h35   #12
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 08h31   #13
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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.).
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 10h18   #14
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

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

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Citation:
Envoyé par Antoun Voir le message
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.
SQL = langage non procédural
PL/SQL (T-SQL) langage procédural ou "extensions procédurales" du SQL
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 10h27   #15
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par vicenzo Voir le message
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, ...)
non, le PL/SQL ne permet pas d'avoir une interaction avec l'utilisateur
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 11h00   #16
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
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
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 12h16   #17
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par pifor Voir le message
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.
Ah, je connaissais pas cette spécificité Oracle. J'utilisais le terme "dynamique" par opposition au SQL statique, càd sans variables, sans boucles, etc.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 20h59   #18
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

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

Informations forums :
Inscription : octobre 2007
Messages : 3 320
Points : 5 839
Points : 5 839
Citation:
Envoyé par Antoun Voir le message
Ah, je connaissais pas cette spécificité Oracle. J'utilisais le terme "dynamique" par opposition au SQL statique, càd sans variables, sans boucles, etc.
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 ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 23h43   #19
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h28.


 
 
 
 
Partenaires

Hébergement Web