2009-05-06 4 views

Répondre

7

Alors que je suis tenté de répondre "non" ou "je ne pense pas", le seul vrai moyen de connaître la réponse à cette question est de allez le mesurer vous-même. Utilisez un profileur comme JetBrains dotTrace et le propre profileur de TOAD pour le découvrir.

Toutes les autres réponses sont de nature spéculative.

2

Ce sera plus rapide si vous construisez vos procs stockés (paquets PL/SQL) de telle sorte que moins de données seront transférées entre la base de données et le client.

4

Il devrait être. Lorsque vous envoyez un code SQL à la base de données, le moteur doit l'analyser et l'exécuter. Les procédures stockées sont analysées (et compilées) au moment de la création. Donc, au moins, vous gagnez du temps d'analyse.

+2

Espérons que SQL soumis à partir d'une application utilisera des variables de liaison, et donc des exécutions répétées ne seront pas hard-parse. Il pourrait être approprié de dire que les variables de liaison sont promues en PL/SQL parce que c'est beaucoup plus facile que de ne pas les lier, donc une meilleure pratique est promue. –

3

Je m'attendrais à ce que les procédures stockées soient plus rapides dans presque tous les cas.
Mais cela dépend principalement de votre code.
Si, par exemple, vous obtenez un jeu de résultats de votre base de données, puis que vous utilisez ces données pour effectuer d'autres requêtes, vous vous retrouverez avec beaucoup de surcharge dans votre trafic réseau. Ceci est particulièrement vrai si vous oubliez d'utiliser une seule connexion pour les demandes.
Il pourrait alors être plus efficace d'utiliser une seule procédure stockée pour renvoyer les données agrégées (si possible bien sûr).

0

Jon Limjap a déclaré: "Toutes les autres réponses sont spéculatives."

Il y a beaucoup de vérité à cette déclaration. Il y a tellement de facteurs: comment le serveur DB est-il configuré? Comment est la vitesse/fiabilité du réseau? Comment est le SQL? Comment va le PL/SQL? Je pourrais écrire très lentement SQL et/ou PL/SQL si je le voulais (et avoir, par inadvertance, sur des projets passés!). Donc, si vous le pouvez, essayez les deux.

Questions connexes