rowfactories в Python-oracledb являются мощным средством для запросов к базам данных Oracle, позволяющим изменить представление извлекаемых строк, уменьшить количество шаблонного кода приложения и копирования данных. Здесь мы покажем, как легко использовать класс данных Python с rowfactory для преобразования строк в экземпляры пользовательского класса.
rowfactory - это метод, который вызывается для каждой извлекаемой из базы данных строки перед ее возвращением приложению. Он может применяться к курсору после выполнения оператора и перед извлечением данных.
Встроенный в базы данных Oracle “Client Result Cache” (CRC) является эффективным, интегрированным, управляемым кэшем, который резко улучшает производительность запросов и существенно снижает нагрузку на базу данных при повторяющихся запросах к по большей части статическим таблицам, таким как почтовые индексы или номера деталей. Никакие изменения в приложениях не требуются. Никакого отдельное промежуточного кэша устанавливать не нужно. CRC доступен для каждого "толстого" клиента, который использует библиотеки Oracle Client, такие как драйверы для Python, Node.js, Go, PHP, Rust, Ruby и Oracle C API. Он также доступен в JDBC. Эта статья демонстрирует пример для Python.
Преимущества кэширования результатов клиента
Может использоваться без необходимости изменять код приложения.
Улучшенное время отклика запроса.
Операторы не посылаются для выполнения в базу данных.
Лучшая производительность за счет устранения циклов обмена между серверами.
Улучшенная масштабируемость сервера баз данных за счет экономии ресурсов сервера.
Автоматически управляемое аннулирование кэша, поддерживающее соответствие кэша изменениям в базе данных.
Не требуется сервер промежуточного слоя для кэширования.
Разработчикам не требуется создавать или использовать собственный кэш.
SQL — первый язык программирования, в котором появились явные временные типы данных. Я давно полагаю, что если бы в Cobol изначально был тип TIMESTAMP, вся история с Y2K могла бы и не случиться. По крайней мере, сегодня всё больше людей знают о стандартах отображения даты и времени ISO 8601. Кто знает — может быть, их наконец начнут применять.