IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

[Performance] PL/SQL vs SQL


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut [Performance] PL/SQL vs SQL
    Bonjour à tous,

    je suis en train de découvrir Oracle et le PL/SQL. Avant toute chose, je vais poser une question débile :
    " Si dans un script, j'ai une instruction SELECT, j'ai un script SQL.
    " Si dans un script, j'ai une instruction SELECT incluse dans un bloc BEGIN-END", ai-je un script PL/SQL " ?

    Maintenant la question moins bête :
    " Y a-t-il une différence de performance (temps d'exécution, mémoire) entre un script SQL et le même script inclus dans un blog begin-end ? "

    Quel est l'intérêt de cette question me direz-vous. Afin de mettre en place un système de logging, j'aimerais utiliser la variable SQL%ROWCOUNT pour écrire dans une table le nombre de ligne impactées par chaque instruction.

    D'avance, je vous remercie.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    si tu dois écrire un programme "data driven", utilises le pl/sql plutôt que développer une appli cliente lançant des sql

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Citation Envoyé par Marc Musette Voir le message
    si tu dois écrire un programme "data driven", utilises le pl/sql plutôt que développer une appli cliente lançant des sql
    Des scripts .SQL sont lancés par un script .bat. Je pense en effet qu'utiliser du pl/sql permettrait de mieux gérer l'historisation des opérations. Comme il s'agit d'une refonte de tous les scripts, je m'interroge sur l'impact que cela pourrait avoir sur les performances du process.

    Je pense également utiliser l'instruction log error pour rediriger les records erronés vers des tables de "rejet".

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Bonjour.
    Citation Envoyé par brolon Voir le message
    " Si dans un script, j'ai une instruction SELECT, j'ai un script SQL.
    " Si dans un script, j'ai une instruction SELECT incluse dans un bloc BEGIN-END", ai-je un script PL/SQL " ?
    Oui.

    Citation Envoyé par brolon Voir le message
    Maintenant la question moins bête :
    " Y a-t-il une différence de performance (temps d'exécution, mémoire) entre un script SQL et le même script inclus dans un blog begin-end ? "

    Quel est l'intérêt de cette question me direz-vous. Afin de mettre en place un système de logging, j'aimerais utiliser la variable SQL%ROWCOUNT pour écrire dans une table le nombre de ligne impactées par chaque instruction.
    Pour une requête strictement identique, du SQL sera normalement plus rapide, mais à peine.
    En fait, cette question n'a pas lieu d'être. Si vous utilisez du PL/SQL, c'est que vous en avez besoin. Pour traiter des données en sorties par exemple, ou pour réécrire l'équivalent d'une requête SQL peu performante.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Citation Envoyé par GoLDoZ Voir le message
    Bonjour.

    Oui.


    Pour une requête strictement identique, du SQL sera normalement plus rapide, mais à peine.
    En fait, cette question n'a pas lieu d'être. Si vous utilisez du PL/SQL, c'est que vous en avez besoin. Pour traiter des données en sorties par exemple, ou pour réécrire l'équivalent d'une requête SQL peu performante.
    Ici c'est surtout pour utiliser la variable SQL%ROWCOUNT et enregistrer le nombre de lignes impactées par chaque opération que je pense utiliser du pl/sql.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Notez que SQL%ROWCOUNT concerne l'instruction DML précédente (et avant le COMMIT), inutile de faire un SELECT (dans le cas d'un SELECT, vous mettez les COUNT(*) dans une variable).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Oui c'est bien ainsi que je compte l'utiliser.

    J'ai même trouvé un article qui explique comment faire le split dans le cas d'un merge entre les lignes UPDATED & INSERTED (faut que je retrouve le lien)

Discussions similaires

  1. Mauvaise performance avec Linq to sql
    Par Wasrack dans le forum Linq
    Réponses: 2
    Dernier message: 30/09/2009, 08h45
  2. Question sur les performance d'une transaction SQL
    Par SlashEne dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/04/2008, 22h41
  3. Performances temps d'insertions sql server
    Par KRis dans le forum Bases de données
    Réponses: 5
    Dernier message: 24/04/2008, 19h17
  4. Performance Hibernate vs PL-SQL.
    Par sqlbases dans le forum Hibernate
    Réponses: 4
    Dernier message: 22/05/2007, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo