sql >> Base de Datos >  >> RDS >> Oracle

Evitar llamadas frecuentes a la misma vista dentro de un procedimiento de Oracle

Una vista es una consulta almacenada; en sí mismo, no contiene ningún dato. Si su código es complejo y obtiene datos de varias tablas, utilizando diferentes condiciones, agregaciones, etc., puede llevar algún tiempo acceder a los datos.

En su situación, tal vez una tabla temporal (GTT) global (o privada, dependiendo de la versión de Oracle que use) ayudaría.

  • lo creas una vez
  • al comienzo del procedimiento, inserte datos de la vista en él
  • el resto del procedimiento funcionaría con aquellos preparados datos
  • una vez que finaliza la sesión (o transacción, dependiendo de cómo haya configurado el GTT), los datos de la tabla se pierden
    • la tabla se puede reutilizar la próxima vez que ejecute el procedimiento