Как стать автором
Обновить

Комментарии 12

Добавьте хабракат.
если интересна тема кэширования могу по позже написать, как организовать кэширование в SGA
imho курсоры c rowtype`ами как-то уж очень массивно. можно обойтись ассоциативным массивом, заполняемом при инициализации пакета. для большинства задач этого хватит с головой. тем более, если мне не изменяет память для них можно использовать BULK COLLECT

ну это я так, чтоб придраться )))
Можно. Здесь все так коротко и обобщенно только для того, чтобы донести идею. Данный способ можно точить под себя как угодно — без первичной инициализации с динамическим добавлением значений, флаги запрета кэширования, выборка только необходимых полей и т.д.
а про динамическое добавление значение можно подробнее.

как между сессиями все это синхронизировать?
Что-то глючит, смотрите ниже
Между сессиями надо по другому — с использование хинтов CACHE и FULL.
Все просто — первичная инициализация — просто создание объекта. Далее при вызове функции сначала пробиваем его по кэшу, если есть — сразу возвращаем результат, если нет — выполняем select из справочника по конкретной ID. Результаты заносим в кэш. Если потом будет вызов функции с тем же параметром — он сразу же найдется в кэше и повторного select не будет.
А синхронизации между сессиями никак (для версии ниже 11, для 11 новая фича есть) — это написано в самом начале. У меня данный принцип кэширования применяется для Job'a, который считает разнообразные аналитические показатели.
Спасибо, интересно. Я так понял что это кеширование подходит для малых объемов данных, так как временная таблица хранится в памяти.
Ну не совсем временная таблица — это на самом деле коллекция. У оракла есть понятие временной таблицы — а именно temporary table. Почитайте документацию и тома кайта «Oracle для профессионалов» много интересного найдете для себя.
Вообще если вам интересно могу еще много чего написать по ораклу — просто на сколько вы видите данная тема не пользуется популярностью на хабре, поэтому я тут и не пишу ничего. Если будет интересно хотя бы одному человеку могу начать активно писать про внутреннее устройство и работу сервера.
Как раз заказал книжки. Привезут — буду читать. Да, мне интересна эта тема. Если не сложно, можете написать что-то на тему оптимизаци SQL запросов при работе c dblink-ами. У меня постоянная проблема connection timeout при длительных запросах (15 минут) и подвисшие днями сессии, которые опять же возникают от проблем со связью. Хотелось бы узнать как с этим бороться. Если непонятно объяснил, расскажу подробнее.
Расскажите, вообще с плохой связью и dblink очень много проблем бывает, начиная от продвисших сессий заканчивая полным убийством базы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории