Oracle не постоянно обновляет свою статистику о таблицах и разделах, поскольку это будет слишком тяжело. После анализа таблицы статистика (например, те, что указаны в user_tab_partitions
) будут обновлены. Поскольку у Oracle теперь разные статистические данные, оптимизатор может очень хорошо создавать разные планы выполнения для ваших запросов и, таким образом, влиять на производительность.
Может ли возникать исключение InvalidStateStoreException, когда локальное хранилище состояний получается из контекста ProcessorContext внутри Processor :: init или Transformer :: init, т.е.
blockquote>Нет.
init()
не будет вызвано, пока магазин не будет готов. Таким образом,InvalidStateStoreException
никогда не произойдет.Мы храним ссылку на KeyValueStore userStore и используем ее позже для изменения userStore внутри Punctuator :: punctuate. Стоит ли беспокоиться о получении исключения InvalidStateStoreException при любых операциях put / get / delete с этим хранилищем?
blockquote>Нет. Вы можете смело читать / писать в магазине.
InvalidStateStoreException
никогда не произойдет.punctuate()
выполняется тем же потоком, что иprocess()
, и это гарантирует, что хранилище готово при вызовеpunctuate()
.