Как стать автором
Обновить
100.5

PostgreSQL *

Свободная объектно-реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Применение статистического анализа для определения причин деградации производительности СУБД

Уровень сложностиСложный
Время на прочтение2 мин
Количество просмотров161

Задача

Определить причины снижения производительности в период 11:35 - 12:15 .

Ниже предлагается примерный порядок действий по установлению наличия инцидента снижения производительности и определению одной из причин.

Читать далее
Рейтинг0
Комментарии0

Новости

Странное поведение планировщика запросов PostgreSQL

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров429

В одной из предыдущих статей я описывал проблемы, которые возникают при работе с временными таблицами. Тогда я вкратце описывал, почему нам приходится их так часто использовать. В частности, одной из причин была неправильная работа планировщика запросов в PostgreSQL. Многие из проблем планировщика запросов (и не только PostgreSQL) были также описаны в статье Почему не SQL. В этой статье я покажу достаточно простой и часто используемый случай, когда планировщик ошибается, что может приводить к значительному росту потребления ресурсов. 

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

Рассмотрим простую доменную логику, в которой есть документы и их строки. Для каждой строки вводится сумма. Строки лежат в отдельной таблице и ссылаются на документ :

Читать далее
Всего голосов 6: ↑6 и ↓0+7
Комментарии1

Транзакции PostgreSQL, Требования ACID, примеры. Подготовка к собеседованию, изучение

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров5.1K

Приветствую тебя читатель, я решил написать про ACID и Транзакции PostgreSQL своим языком, с понятными примерами, эта статья ориентирована на людей готовящихся к собеседованию, кто захотел узнать нюансы транзакций в PostgreSQL или про ACID, а также для людей которые знают теорию, но сами ещё ни разу не писали транзакции. Я не ставил перед собой цели рассмотреть и объяснить работу транзакций на очень глубоком уровне. Была цель привести понятные примеры, дать макет работы с транзакциями, а также пощупать основные возможные проблемы при работе с транзакциями в PostgreSQL.

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии2

Администрирование PostgreSQL для начинающих (часть 5)

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров2.1K

Это пятая, заключительная часть статьи, в которой я скажу пару слов про расширения, мониторинг, а также подведу некоторые итоги по статье в целом.

Читать далее
Всего голосов 14: ↑7 и ↓7+2
Комментарии43

Истории

Администрирование PostgreSQL для начинающих (часть 4)

Уровень сложностиПростой
Время на прочтение25 мин
Количество просмотров1.3K

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

Читать далее
Всего голосов 8: ↑6 и ↓2+6
Комментарии6

Администрирование PostgreSQL для начинающих (часть 3)

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров1.4K

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

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии1

Администрирование PostgreSQL для начинающих (часть 2)

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров1.6K

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

Читать далее
Всего голосов 11: ↑6 и ↓5+3
Комментарии10

Администрирование PostgreSQL для начинающих (часть 1)

Уровень сложностиПростой
Время на прочтение33 мин
Количество просмотров10K

Эта статья предназначена для системных администраторов, которые хотят научиться работать с PostgreSQL, но не знают, с чего начать.

Читать далее
Всего голосов 13: ↑9 и ↓4+7
Комментарии29

SQL HowTo: загадка Эйнштейна, или снова Джиндош

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.7K

Пару дней назад был опубликован пост с решением на MySQL загадки Джиндоша (она же загадка Эйнштейна).

Предложенное решение показалось мне "неспортивным" - помимо необходимости жестко учитывать в структуре запроса количество исходных элементов ("джойнить" нужные таблицы нужное количество раз), так еще и условия в запросе приходилось многократно дублировать.

Поэтому я попробовал решить эту задачу "в общем виде", используя возможности PostgreSQL, и вот что из этого получилось.

Читать далее
Всего голосов 17: ↑17 и ↓0+21
Комментарии10

Добавил возможность замены переменных окружения при запуске команды «Copy-Paste» в утилите «Rucken»

Время на прочтение2 мин
Количество просмотров174

Я часто пользуюсь своей утилитой "rucken" по копированию файлов и директорий с кодом, но для генерации конфигураций деплоя по шаблонам я использовал баш скрипты, в которых помимо различных условий происходит копирование через команду "cp" и замена переменных через команду "sed".
На днях подумал и решил что часть с копированием и заменой можно убрать в утилиту "rucken" и тем самым оставить в баш скриптах только логики с условиями.

Читать далее
Рейтинг0
Комментарии0

Некоторые моменты switchover в Patroni. Практические истории из SRE-будней. Часть 8

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.9K

Однажды нам нужно было уменьшить мастер кластера PostgreSQL по CPU и памяти. План был надёжный: дождаться низкой нагрузки на кластер, сменить мастер на одну из асинхронных реплик, переконфигурировать виртуальную машину с бывшим мастером и сделать switchover обратно. Казалось бы, что могло пойти не так?

Читать далее
Всего голосов 15: ↑15 и ↓0+17
Комментарии2

Подводные камни устройства карты видимости в СУБД PostgreSQL

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1K

Карта видимости - это достаточно простой механизм в СУБД PostgreSQL, но даже он имеет множество интересных тайн, если погрузиться в детали реализации.

В этой статье мы выясним:

1. Какие особенности есть у механизма сбрасывания и установки бита полной видимости.

2. Как Index only scan использует бит полной видимости.

3. Зачем записывать информацию об изменении карты видимости в WAL.

4. Каким образом карта видимости участвует в оптимизации предвыборки Bitmap scan.

5. Зачем механизму оценки селективности нужна карта видимости.

Читать далее
Всего голосов 9: ↑9 и ↓0+11
Комментарии0

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.2K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq ScanBitmap Heap ScanIndex Scan и почему Index Only Scan бывает нехорош.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1часть 2) и слайды.

Читать далее
Всего голосов 16: ↑16 и ↓0+21
Комментарии6

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн

Диаграммы классов UML из PostgreSQL. Окончание

Уровень сложностиСредний
Время на прочтение66 мин
Количество просмотров865

Это вторая часть статьи, в которой обсуждаются вспомогательные функции, использующиеся функциями предназначенными для непосредственного формирования PlantUML-скриптов. Основные процедур и функции обсуждались в первой части статьи. Здесь же присутствует контрольный пример с таблицами, которые использовались для демонстрации функций.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Диаграммы классов UML из PostgreSQL. Часть первая

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров2.2K

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

В качестве основного средства документирования выбрана система управления проектами TRAC с подключенным плагином plantuml.

Читать далее
Рейтинг0
Комментарии0

Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров5.7K

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

Когда SQL-запрос становится немного сложнее: SELECT * FROM table, у нас появляется огромная вариативность его исполнения внутри системы — и не всегда понятно, какой из возможных вариантов эффективнее как по памяти, так и по скорости. Чтобы сократить огромное количество вариантов до приемлемого, обычно используются так называемые эвристики — эмпирические правила, которые придуманы человеком для сокращения пространства поиска на несколько порядков. Понятное дело, эти правила могут отсечь и сам оптимальный план выполнения запроса, но позволяют получить хоть что-то приемлемое за адекватное время.

В последние годы в связи с активным развитием ML начали развиваться и нейронные оптимизаторы запросов —особенность которых в том, что они самостоятельно, без участия человека, находят необходимые закономерности в выполнении сложных планов исходя из обучения на огромном количестве данных. Тенденция началась приблизительно в 2017 году и продолжается до сих пор. Давайте посмотрим, что уже появилось в этой области в хронологическом порядке и какие перспективы нас ждут.

Читать далее
Всего голосов 22: ↑21 и ↓1+28
Комментарии9

Успешная попытка установки PostgresPro-Std-16 на Raspberry PI 5 для 1С

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.2K

Приветствую, коллеги!

Я занимаюсь разработкой 1С, поэтому, регулярно, на выходных исоледую различные варианты развёртывания серверов 1С под разработку (различные версии или комбинации)

В этот раз решил провести эксперимент с Rapsberry PI 5. К этому времени у меня был развернут на ней сервер хранилищ данных для нескольких версий 1С, опубликованный через apache2 и база разработки файловая, опубликованная через apache2.

Решил добавить клиент-серверную архитектуру для доступа с рабочего места для импорта проекта в EDT. Для этого развернуть сервер 1С 8.3.24.1548 и сервер PostgresPro-std-16.

Описание установки и первичной настройки.
Всего голосов 3: ↑2 и ↓1+1
Комментарии20

Хранение данных в Postgresql

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров13K

В этом тексте хочется подробнее рассмотреть хранение данных в PostgreSQL на физическом уровне.

Для начала определимся с общеизвестными вещами. Данные хранятся в таблицах, таблицы находятся в схемах, схемы, в свою очередь, в базах данных. Под данными я тут подразумеваю одну или несколько строк. В качестве примера будем рассматривать эталон критики, по моему личному мнению, цитаты Линуса Торвальдса.

Подробнее под катом
Всего голосов 17: ↑16 и ↓1+19
Комментарии3

PostgreSQL 17: Часть 5 или Коммитфест 2024-03

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров3.7K


После выхода релиз-кандидата версии 17 в плане выпуска осталась последняя незакрытая дата: 26 сентября 2024 года. На этот день намечен официальный выпуск PostgreSQL 17.


В этой статье рассказывается о патчах, принятых в ходе последнего мартовского коммитфеста. Предыдущие статьи о коммитфестах 17-й версии: 2023-07, 2023-09, 2023-11, 2024-01.


Все вместе они дают подробное представление о новой версии СУБД.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+14
Комментарии4

Статический анализ структуры базы данных в проекте GitLab

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.9K

Возможно ли применить статический анализ структуры базы данных к реальным проектам, которые используют PostgeSQL, какой будет результат? Давайте применим и посмотрим что получится. В качестве реальных проектов возьмем инструменты с открытым кодом, которыми многие пользуются ежедневно - GitLab и Redmine.

Читать далее
Всего голосов 6: ↑5 и ↓1+8
Комментарии1
1
23 ...

Вклад авторов