Pull to refresh
9
0
Send message

О внутренних аспектах внешних ключей

Level of difficultyHard
Reading time5 min
Views1.7K

Эта история начиналась с процесса валидации FK на очень больших таблицах (1TB+).
Далее я расскажу, какие нетривиальные проблемы встретились по пути, как я их решал, и каким образом можно исследовать довольно сложные проблемы производительности базы данных Postgres.

Читать далее

pg_pathman vs декларативное секционирование — что лучше?

Level of difficultyMedium
Reading time8 min
Views2K

Добрый день, коллеги! Как известно, компания "Postgres Professional" более не рекомендует использовать секционирование с использованием pg_pathman, а рекомендует использовать вместо него декларативное секционирование. Однако помимо синтаксического сахара и утилитарного кода по поддержке интервального (в стиле Oracle) секционирования, я обнаружил для себя ещё одну проблему в такой миграции (переходе). Надеюсь, коллеги из PGPro доработают декларативное секционирование к моменту окончательного выпиливания pg_pathman.

Читать далее

Использование метода «почти бесконечного» запроса для сопоставления CPU интенсивных операций в Oracle

Level of difficultyMedium
Reading time2 min
Views621

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

Возникла довольно естественная идея использовать этот метод для сопоставления CPU интенсивных задач в БД Oracle. Например, если мы встраиваем такую прожорливую CPU-функцию в наш пайплайн исполнения SQL-запроса так, чтобы она выполнилась более миллиарда раз, то получаем возможность сравнить затраты на CPU в разных случаях.

В данном случае мы будем сравнивать по производительности различные функции хеширования в Oracle: ORA_HASH и различные варианты STANDARD_HASH.

Читать далее

Timed wait events in PostgreSQL

Level of difficultyHard
Reading time7 min
Views3.9K

перевод второй статьи известного специалиста в области Oracle Фрица Хугланда на тему трассировки postgresql при помощи bpftrace (первую статью я перевёл ранее см. Использование bpftrace для трассировки выполнения запросов в postgres)

Читать далее

Использование uprobe/uretprobe в bpftrace-скриптах вместо USDT probe

Level of difficultyHard
Reading time3 min
Views782

В этой статье я приведу демонстрацию использования BPF uprobe/uretprobe для исследования внутреннего мира Postgres вместо usdt-проб.

Читать далее

Использование bpftrace для трассировки выполнения запросов в postgres

Level of difficultyHard
Reading time8 min
Views1.6K

image
Эта статья перевод статьи известного специалиста в области Oracle (но про Postgres) — Фрица Хугланда — https://databaseperformance.hashnode.dev/using-bpftrace-for-postgres-query-execution-tracing.

Читать дальше →

Connect by — интересный случай

Level of difficultyMedium
Reading time4 min
Views2.3K

Довольно интересный случай выполнения "Ораклового" запроса, который, надеюсь может навести на некоторые рассуждения о runtime механизмах исполнения.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Database Developer, Database Architect
Lead
SQL
Oracle
Database
Linux
Java