Уведомление об изменении базы данных Oracle и ROWID

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

ROWID (физические адреса строк) могут изменяться при выполнении различных операций с базой данных, как указано этим потоком переполнения стека . В дополнение к этому, как упоминает Том в этом потоке, кластерные таблицы могут иметь одинаковые идентификаторы строк.

На основании вышеупомянутого исследования кажется небезопасным использовать rowid, отправленный во время уведомления об изменении базы данных, в качестве ключа в кэше приложения, верно? Это также вызывает вопрос: следует ли использовать функцию уведомления об изменении базы данных для создания кеша сервера приложений? или дается ли рекомендация перезапустить все кластеры серверов приложений (для перезагрузки / обновления кеша), когда таблицы кэшированных объектов подвергаются каким-либо операциям, которые приводят к изменению идентификаторов строк? Будет ли это хорошим предположением для производственной среды?

6
задан Community 23 May 2017 в 12:25
поделиться