У меня есть программа java, выполняющая 3 отдельных sqls с одним и тем же встроенным представлением - для создания встроенного представления при выполнении sqls требуется около 20 минут - есть способ кэшировать или повторно использовать его? - попытка избежать временного решения таблицы, потому что его нужно делегировать в PLSQL, поскольку java-программа не имеет прав на создание объектов схемы. ps: oracle 10gМожет ли оракульные встроенные представления использоваться в операторах Java вместо создания временной таблицы
ответ
Oracle сделает все возможное, чтобы опустить результат, если вы его разрешите. Но вы все равно можете иметь временную таблицу, если вы действительно этого хотите, и она довольно маленькая. Если вы используете пакет, вы можете создать временную таблицу при первом вызове и использовать кэшированные данные два раза - попробуйте переменные пакета и посмотрите, делает ли это то, что вы хотите.
Таблицы Oracle temp не должны создаваться «на лету». Документы here. Если вы используете временную таблицу для этого, создайте ее один раз и просто используйте ее в процедуре.
Другой вариант может быть материализованным видом. Документы here. Материализованное представление будет либо обновляться по запросу, либо по графику.
С предоставленной информацией невозможно рассказать, что лучше подойдет вашей ситуации.
ранее применяли процедуры для создания и удаления временных таблиц «на лету», прежде чем переключиться на встроенные представления. Переключатель в основном был связан с проблемами в среде разработки команды, разделяющей одну БД! добавление к этому заключается в том, что программа выполняется в 10 параллельных потоках для разных диапазонов данных - на данный момент планируется переключиться на временные таблицы по мере завершения разработки и теперь ее производительность - может быть 11g RESULT_CACHE подсказка - это ответ? – prabhackar
Создание и удаление глобальных временных таблиц в oracle вызовет проблемы. Если вы их используете, оставьте их в базе данных. Это позволит избежать необходимости создания объектов. И любые данные в них зависят от сеанса и усекаются в конце транзакции или сеанса. Поэтому не нужно их бросать. –