Comment oracle CACHE une requête (SQL), l'exécution de requête contient les étapes suivantes. 1. parse 2. Exécuter 3. FetchCACHE de SQL dans Oracle
en oracle vérifie première étape si la requête existe dans CACHE (Shared Pool) ou non (Il sera existe si la requête est identique et sur la base LRU), si elle existe alors PARSING sera ignoré et l'exécution commencera. Donc, pour rendre les requêtes performantes, nous devons utiliser des variables bind et utiliser les mêmes requêtes sql. Mais dans Parsing Oracle vérifie également l'authentification (Accès Utilisateur), si plusieurs utilisateurs utilisent la même requête, comment Oracle ignore/utilise l'analyse syntaxique?
+1: Les rats, battez-moi! –
Si vous avez besoin de plus de détails ou si vous voulez obtenir plus de détails, veuillez demander dans les commentaires. Je ferai de mon mieux pour vous aider. –
La requête est liée au nom du schéma d'analyse et à l'utilisateur de la session. Donc, user_a peut faire une ALTER SESSION SET CURRENT_SCHEMA = USER_B et exécuter SELECT * FROM EXAMPLE. La requête recherche des tables/vues/synonymes pour EXAMPLE dans USER_B mais vérifie également si USER_A a des privilèges sur ces objets. Il peut y avoir plusieurs SQL avec un texte identique qui fait référence à des objets ayant le même nom dans différents schémas. –