Oracle
 sql >> база данни >  >> RDS >> Oracle

Избягване на често извикване на един и същи изглед в процедура на Oracle

Изгледът е съхранена заявка; самият той не съдържа никакви данни. Ако неговият код е сложен и извлича данни от няколко таблици, използвайки различни условия, агрегирания и какво ли още не, достъпът до данните може да отнеме известно време.

Във вашата ситуация може би глобална (или частна; в зависимост от версията на Oracle, която използвате) временна таблица (GTT) би помогнала.

  • създавате го веднъж
  • в началото на процедурата вмъкнете данни от изгледа в нея
  • останалата част от процедурата ще работи с подготвените данни
  • след като сесията (или транзакцията; в зависимост от това как сте настроили GTT) приключи, данните от таблицата се губят
    • таблицата може да се използва повторно следващия път, когато стартирате процедурата



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инструкция за вмъкване на Oracle, ако не съществува

  2. Как да създадете работа, когато job_action трябва да извика процедура с параметър CLOB

  3. sqldeveloper извежда правилен резултат за count(*), докато sqlplus дава нула

  4. Как да използвам динамичен параметър в IN клауза на JPA именувана заявка?

  5. MyBatis Mapping за извличане на списък с потребителски типове записи в Oracle