Skip to content

Классы данных Python облегчают получение строк из базы данных как объектов

Пересказ статьи Christopher Jones. Python Data Classes make it easy to fetch database rows as objects


rowfactories в Python-oracledb являются мощным средством для запросов к базам данных Oracle, позволяющим изменить представление извлекаемых строк, уменьшить количество шаблонного кода приложения и копирования данных. Здесь мы покажем, как легко использовать класс данных Python с rowfactory для преобразования строк в экземпляры пользовательского класса.

rowfactory - это метод, который вызывается для каждой извлекаемой из базы данных строки перед ее возвращением приложению. Он может применяться к курсору после выполнения оператора и перед извлечением данных.

Рассмотрим код, который не использует rowfactory:
Continue reading "Классы данных Python облегчают получение строк из базы данных как объектов"

Кэширование результата запроса для быстрых приложений баз данных

Пересказ статьи Christopher Jones. Query result caching for fast database applications


Встроенный в базы данных Oracle “Client Result Cache” (CRC) является эффективным, интегрированным, управляемым кэшем, который резко улучшает производительность запросов и существенно снижает нагрузку на базу данных при повторяющихся запросах к по большей части статическим таблицам, таким как почтовые индексы или номера деталей. Никакие изменения в приложениях не требуются. Никакого отдельное промежуточного кэша устанавливать не нужно. CRC доступен для каждого "толстого" клиента, который использует библиотеки Oracle Client, такие как драйверы для Python, Node.js, Go, PHP, Rust, Ruby и Oracle C API. Он также доступен в JDBC. Эта статья демонстрирует пример для Python.

Преимущества кэширования результатов клиента


  • Может использоваться без необходимости изменять код приложения.

  • Улучшенное время отклика запроса.

  • Операторы не посылаются для выполнения в базу данных.

  • Лучшая производительность за счет устранения циклов обмена между серверами.

  • Улучшенная масштабируемость сервера баз данных за счет экономии ресурсов сервера.

  • Автоматически управляемое аннулирование кэша, поддерживающее соответствие кэша изменениям в базе данных.

  • Не требуется сервер промежуточного слоя для кэширования.

  • Разработчикам не требуется создавать или использовать собственный кэш.
Continue reading "Кэширование результата запроса для быстрых приложений баз данных"

Учёт интервалов времени

Автор: Джо Селко (Joe Celko)



SQL — первый язык программирования, в котором появились явные временные типы данных. Я давно полагаю, что если бы в Cobol изначально был тип TIMESTAMP, вся история с Y2K могла бы и не случиться. По крайней мере, сегодня всё больше людей знают о стандартах отображения даты и времени ISO 8601. Кто знает — может быть, их наконец начнут применять.

Continue reading "Учёт интервалов времени"