Skip to content

Тайм-аут оператора в PostgreSQL

Пересказ статьи Anjuman Bhattacharyya. Statement Timeout in PostgreSQL


Необходимо предохранять вашу базу данных от долгоиграющих запросов, т.к. они могут подвесить ее. Для защиты вашей базы данных PostgreSQL имеется один конфигурационный параметр, устанавливающий максимально дозволенную длительность любого исполняющегося запроса. Это параметр statement_timeout.

Конфигурационный параметр: statement_timeout


Описание: Устанавливает максимально допустимую продолжительность любого оператора.
Значение по умолчанию: 0 (0 означает, что параметр выключен; обычно измеряется в мс; в основном указывается в мс или сек).

PostgreSQL также записывает в журнал запрос, время ожидания которого истекло, если другой параметр log_min_error_statement установлен в ERROR. Вы можете проверить это, выполнив следующую команду в вашей базе данных.

Continue reading "Тайм-аут оператора в PostgreSQL"

Интеграция Python с SQL для надежных решений по работе с данными

Пересказ статьи Nathan Rosidi. Integrating Python with SQL for Robust Data Solutions


"Данные - это новая нефть", - говорит Clive Humby. Python и SQL важны для переработки этой нефти, но почему не использовать их совместно?

Для тех, кто ищет решения для манипуляции базами SQL с помощью Python и SQL, мы исследуем различные подходы и используем один из них для создания вопроса для интервью.

Но прежде давайте рассмотрим преимущества и варианты подключения к базам данных с помощью Python.
Continue reading "Интеграция Python с SQL для надежных решений по работе с данными"

Влияние на производительность использования ORDER BY с LIMIT в PostgreSQL

Пересказ статьи Semab Tariq. Performance impact of using ORDER BY with LIMIT in PostgreSQL


При запросах к большим наборам данных в PostgreSQL сочетание предложений ORDER BY и LIMIT может существенно влиять на производительность. ORDER BY сортирует данные, а LIMIT ограничивает число возвращаемых строк, но вместе они создают узкое место в производительности. Понимание взаимодействия этих операций и оптимизация их использования представляется весьма важным для поддержания эффективной производительности базы данных и гарантии быстрого выполнения запросов.

В этой статье мы рассмотрим, как они могут повлиять на производительность запроса.

Ниже приведена структура простой таблицы с именем person, которая будет использоваться в наших тестах.
Continue reading "Влияние на производительность использования ORDER BY с LIMIT в PostgreSQL"

Алгоритмы плана выполнения в PostgreSQL

Пересказ статьи Tarik Favero. PostgreSQL Execution plan algorithms


В этой статье описываются наиболее общие алгоритмы, которые PostgreSQL может использовать в плане выполнения данного запроса. Примите к сведению, что это не полный список; позднее могут быть добавлены другие алгоритмы.

Алгоритмы пути доступа


Все планы выполнения описывают способ доступа к данным для обеспечения вывода результатов запроса. Поэтому мы обнаружим список операторов, которые выполнялись или будут выполняться для получения результатов.

Мы увидим такие алгоритмы доступа к данным, как Seq Scan, Index Scan, Index-only scan, Bitmap index scan, Bitmap heap scan и их параллельные реализации. В зависимости от условий соединения в JOIN мы увидим алгоритмы комбинации таблиц, такие как Nested loop, Hash-join и Merge. Кроме того, будет представлена информация относительно агрегации, сортировки и буферизации.

Каждый алгоритм имеет свои собственные особенности, которые в зависимости от множества факторов могут оказаться более или менее производительными. Давайте более подробно рассмотрим каждый алгоритм доступа.

Continue reading "Алгоритмы плана выполнения в PostgreSQL"