2010-05-11 1 views
0

У меня есть программа java, выполняющая 3 отдельных sqls с одним и тем же встроенным представлением - для создания встроенного представления при выполнении sqls требуется около 20 минут - есть способ кэшировать или повторно использовать его? - попытка избежать временного решения таблицы, потому что его нужно делегировать в PLSQL, поскольку java-программа не имеет прав на создание объектов схемы. ps: oracle 10gМожет ли оракульные встроенные представления использоваться в операторах Java вместо создания временной таблицы

ответ

0

Oracle сделает все возможное, чтобы опустить результат, если вы его разрешите. Но вы все равно можете иметь временную таблицу, если вы действительно этого хотите, и она довольно маленькая. Если вы используете пакет, вы можете создать временную таблицу при первом вызове и использовать кэшированные данные два раза - попробуйте переменные пакета и посмотрите, делает ли это то, что вы хотите.

0

Таблицы Oracle temp не должны создаваться «на лету». Документы here. Если вы используете временную таблицу для этого, создайте ее один раз и просто используйте ее в процедуре.

Другой вариант может быть материализованным видом. Документы here. Материализованное представление будет либо обновляться по запросу, либо по графику.

С предоставленной информацией невозможно рассказать, что лучше подойдет вашей ситуации.

+0

ранее применяли процедуры для создания и удаления временных таблиц «на лету», прежде чем переключиться на встроенные представления. Переключатель в основном был связан с проблемами в среде разработки команды, разделяющей одну БД! добавление к этому заключается в том, что программа выполняется в 10 параллельных потоках для разных диапазонов данных - на данный момент планируется переключиться на временные таблицы по мере завершения разработки и теперь ее производительность - может быть 11g RESULT_CACHE подсказка - это ответ? – prabhackar

+0

Создание и удаление глобальных временных таблиц в oracle вызовет проблемы. Если вы их используете, оставьте их в базе данных. Это позволит избежать необходимости создания объектов. И любые данные в них зависят от сеанса и усекаются в конце транзакции или сеанса. Поэтому не нужно их бросать. –

 Смежные вопросы

  • Нет связанных вопросов^_^