Self-hosted EXPLAIN: наглядно и безопасно

С момента первой же хабрапубликации о возможностях нашего сервиса визуализации планов запросов PostgreSQL explain.tensor.ru (а было это уже больше 2 лет назад) пользователи задавали резонный вопрос: «Все у вас круто, но у нас в запр…

PostgreSQL Antipatterns: когда мешает внешний ключ

Внешние ключи (foreign keys) — мощный и удобный механизм контроля логической целостности данных в базе. Но он бывает не только лишь полезен, и может неплохо пригрузить вашу БД.Внимательный взгляд на план запроса поможет избежать многих проблем — как пр…

PostgreSQL Antipatterns: в этом плане кто-то лишний

Сегодня будет рассказ про избыточные группировки и сортировки в SQL-запросах — как они возникают, по каким признакам их можно потом вычислить и как избавиться от них. Читать далее…

Псс, парень… индекс нужен?

Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: «Как сделать мой запрос быстрее?». Классический ответ — необходимо создать подходящий индекс. Но куда именно его стоит «накатывать», да и как вообще он должен …

«Импортозамещаем» анализ планов PostgreSQL

Вчера Hubert ‘depesz’ Lubaczewski закрыл доступ с российских IP ко всем своим сайтам, включая широко известный визуализатор планов PostgreSQL-запросов explain.depesz.com.Но это не беда, потому что в компании «Тензор» мы разработали сервис explain.tenso…

SQL HowTo: разные варианты работы с EAV

Соблазн использовать модель EAV (Entity-Attribute-Value) при организации структуры БД весьма велик, особенно когда предметная область заранее плохо известна (или разработчик просто не хочет в нее углубляться). Это ведь так удобно — создать «универсальн…

Реверс-инжинирим структуру БД PostgreSQL по плану запроса к ней

Большая часть оптимизаций запросов к базам PostgreSQL может выполняться «механически», следуя разного рода маркерам в плане выполнения запроса, которые подскажут, что и как можно ускорить. Но «глубинные» переработки алгоритма, вроде описанных в статье …

Кластеризуем миллионы планов PostgreSQL

Как найти самые «горячие» запросы на вашем PostgreSQL-сервере? Поискать их в логе и проанализировать план или воспользоваться расширением pg_stat_statements.А если в лог попадает миллион запросов за сутки?.. Тогда любое значение лимита pg_stat_statemen…

PostgreSQL Antipatterns: «слишком много золота»

Иногда мы пишем SQL-запросы, мало задумываясь над тем фактом, что сначала они должны быть по сети как-то доставлены до сервера, а затем их результат — обратно в клиентское приложение. Если при этом на пути до сервера присутствует еще и пулер соединений…

Анализируем «слона» вместе с коллегами

Если ваша жизнь DBA, сопровождающего PostgreSQL, наполнена вопросами «а почему так медленно?» и «как сделать, чтобы запрос не тормозил?», наш сервис анализа и визуализации планов запросов explain.tensor.ru сделает ее немного легче за счет привлече…