| Date | Title | Description |
| 15.05.2026 | СУБД Tantor Postgres 18: обзор улучшений для 1С | До выхода релиза СУБД Tantor Postgres 18 осталось уже совсем немного, и мы хотим наперед рассказать о его новых возможностях для работы с приложениями на платформе "1С:Предприятие". В обзоре разберем улучшения планировщика, по тра... |
| 30.12.2025 | SQL HowTo: ускоряем запрос в 32 раза (Advent of Code 2025, Day 8: Playground) | Осторожно, спойлеры! Не читайте, пока хотите решить задачу самостоятельно.
В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.
Возможно, SQL не сам... |
| 05.12.2025 | SQL HowTo: от частностей к рекурсии (Advent of Code 2025, Day 3: Lobby) | Осторожно, спойлеры! Не читайте, пока хотите решить задачу самостоятельно.
В этой челлендж-серии статей, начатой с прошлогоднего эвента, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2025.
Возможно, SQL не сам... |
| 11.11.2025 | СУБД Tantor Postgres 17.6: обзор улучшений для 1С | Продолжаем знакомить вас с улучшениями СУБД Tantor Postgres для работы с продуктами 1С. В рамках предыдущей статьи о нововведениях версии 17.5 мы разобрали арсенал специализированных функций, призванных существенно ускорить выполнение типич... |
| 07.10.2025 | Сравнение Zabbix, Grafana и 1С «Монитор»: что выбрать крупному бизнесу | Сегодня публикую статью нашего партнера — Андрея Бурмистрова, эксперта в сфере оптимизации производительности 1С. В арсенале IT-отдела крупной компании обязательно присутствуют системы мониторинга. Но почему же для глубокого анализа систем,... |
| 02.09.2025 | Как мониторить сотни инстансов PostgreSQL и не сойти с ума | Если вы инженер в крупной компании, а особенно если ваша организация поставляет свои услуги в виде SaaS-решений, то вам так или иначе придется решать задачу мониторинга работы всех ваших баз PostgreSQL. На них часто бывает завязан функциона... |
| 04.07.2025 | СУБД Tantor Postgres 17.5: обзор улучшений для 1С | В июне 2025 г. «Тантор Лабс» представила СУБД Tantor Postgres версии 17.5. Новый релиз насыщен обновлениями во всех основных аспектах: усиление безопасности (Transparent Data Encryption с поддержкой ГОСТ-криптоалгоритмов, аудит безопасности... |
| 03.06.2025 | Трассировка запросов в Postgres с расширением pg_trace | Трассировка запросов — это процесс сбора и анализа запросов на стороне СУБД, необходимый для диагностики проблем с производительностью в базах данных. С её помощью, например, можно:
понять, почему запрос выполняется медленно, — для этого ну... |
| 13.02.2025 | SQL HowTo: укрощаем рекурсию в лабиринте (Advent of Code 2024, Day 16: Reindeer Maze) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 06.02.2025 | Building a Resilient GitLab Cluster with Ansible: A Step-by-Step Guide | In the digital age, reliability is king. For teams relying on GitLab, a single-node installation can quickly become a bottleneck. As projects grow, so do the demands on infrastructure. Enter the GitLab Cluster—a robust solution designed to ... |
| 05.02.2025 | SQL HowTo: играем в сокобан с помощью json-карты и типа point (Advent of Code 2024, Day 15: Warehouse Woes) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 31.01.2025 | Navigating the Code: A Journey Through Advent of Code 2024 | Advent of Code is a yearly tradition for programmers. It’s a playground for problem-solving, a treasure hunt for those who thrive on logic and creativity. Each day, a new puzzle emerges, inviting coders to dive deep into the world of algori... |
| 31.01.2025 | SQL HowTo: находим «елочку» с помощью центра масс (Advent of Code 2024, Day 14: Restroom Redoubt) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 22.01.2025 | SQL HowTo: волновой алгоритм и подсчет границ (Advent of Code 2024, Day 12: Garden Groups) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 17.01.2025 | SQL HowTo: поиск «в ширину» внутри цикла (Advent of Code 2024, Day 10: Hoof It) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 15.01.2025 | Navigating the Depths of PostgreSQL: Optimizing Queries and Managing Performance | In the world of databases, PostgreSQL stands as a titan. Its robust features and flexibility make it a favorite among developers. However, like any powerful tool, it requires finesse to wield effectively. The challenge lies in optimizing qu... |
| 15.01.2025 | Как поймать и обезвредить проблемные запросы в PostgreSQL | Выявляем проблемные запросы
Прежде всего определим, какие запросы будут потенциальными кандидатами на улучшение, и попытаемся их найти.Долгие запросы
Обычно в низкой производительности систем обвиняют долгие запросы. Вот только долгие — пон... |
| 15.01.2025 | SQL HowTo: оптимизируем рекурсию (Advent of Code 2024, Day 9: Disk Fragmenter) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 13.01.2025 | SQL HowTo: генерация и подсчет уникальных комбинаций (Advent of Code 2024, Day 8: Resonant Collinearity) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 09.01.2025 | SQL HowTo: «экспоненциальная» рекурсия (Advent of Code 2024, Day 7: Bridge Repair) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 26.12.2024 | SQL HowTo: рекурсивные циклы и их контроль (Advent of Code 2024, Day 6: Guard Gallivant) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 25.12.2024 | POSTGRES EXPLAIN | Всем привет! На связи Ришат Садыков из Spectr. Сегодня мы поговорим про explain в Postgres. Это объемная тема, по ней можно найти много материала. В статье я постарался собрать только ту информацию, которой достаточно для начала использован... |
| 25.12.2024 | SQL HowTo: поиск в словаре и массивах, сортировка «пузырьком» (Advent of Code 2024, Day 5: Print Queue) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 23.12.2024 | SQL HowTo: логические агрегаты (Advent of Code 2024, Day 2: Red-Nosed Reports) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 23.12.2024 | SQL HowTo: работа с массивами (Advent of Code 2024, Day 4: Ceres Search) | В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозрев... |
| 23.12.2024 | SQL HowTo: регулярные выражения и условная агрегация (Advent of Code 2024, Day 1: Historian Hysteria) | В этой челлендж-серии статей, начатой, внезапно, с разбора задачи Day 11, попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.
Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные ... |
| 12.12.2024 | SQL HowTo: агрегация внутри рекурсии (Advent of Code 2024, Day 11: Plutonian Pebbles) | Сегодня посмотрим на примере задачки из Advent of Code зачем и как можно обойти ошибку aggregate functions are not allowed in a recursive query's recursive term, возникающую при попытке агрегировать какие-то данные внутри шага рекурсии на P... |
| 07.10.2024 | PostgreSQL Antipatterns: валим «слона» — highload на ровном месте | Сегодняшняя тема посвящена нелегким взаимоотношениям клиентского приложения и сервера PostgreSQL: как на ровном месте, неудачной архитектурой приложения, можно обеспечить себе хронические проблемы производительности.
Рассмотрим классические... |
| 30.09.2024 | PostgreSQL Antipatterns: устраняем вложенные интервалы | Недавно попался на глаза примерно вот такой запрос, которым хотели отобрать в таблице (очевидно, для последующего удаления) все id записей интервалов, которые полностью перекрыты каким-то другим интервалом того же owner'а:
Ищем покрывающие ... |
| 23.04.2024 | Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз | рекомендации explain.tensor.ru
У одного из клиентов нашей системы мониторинга PostgreSQL серверов возникла проблема сильного замедления запросов при запуске базы в Docker. В этой статье расскажем о возможных последствиях использования Postg... |
| 02.04.2024 | Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы) | Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".
В этой лекции мы узнаем, что такое план выпол... |
| 25.03.2024 | Плагин для анализа планов PostgreSQL в Sublime Text, и его разработка | Sublime Text plugin
Завершаем серию статей о плагинах для explain.tensor.ru - сервиса визуализации PostgreSQL-планов. На этот раз речь пойдет о плагине для Sublime Text.Установка
К сожалению в зависимостях нет возможности установить связанн... |
| 20.03.2024 | Плагин для анализа планов PostgreSQL в VS Code, и его разработка | VisualStudio Code extension
Анализ планов и форматирование запросов PostgreSQL можно выполнять в VS Code, используя explain.tensor.ru и плагин, о котором пойдет речь ниже.Установка
установка расширений
Для выполнения запросов наш плагин исп... |
| 15.03.2024 | SQL HowTo: один индекс на два диапазона | В прошлой статье я показал, как условие с парой однотипных неравенств, плохо поддающееся индексации с помощью btree, можно переделать на эффективно gist-индексируемое в PostgreSQL условие относительно диапазонных типов, а наш сервис анализа... |
| 11.03.2024 | Бьемся с индексацией парных неравенств в PostgreSQL | м/ф "Брэк!", Гарри Бардин, 1985
Я уже не раз писал, что условия с несколькими неравенствами () обычно плохо подходят для индексирования "классическим" btree, вызывают "тормоза", и необходимо придумывать различн... |
| 06.02.2024 | Плагин для анализа планов PostgreSQL в Eclipse и DBeaver, и его разработка | Explain PostgreSQL plugin
Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, в дополнение к плагину Jetbrains мы создали еще один - с возможностью форматировать запросы и анализировать планы в Eclipse IDE и... |
| 15.01.2024 | Плагин для анализа планов PostgreSQL в IDE JetBrains и его разработка | Intellij plugin
Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, мы создали плагин "Explain PostgreSQL" для всех IDE от JetBrains, теперь есть возможность форматировать запросы и анализировать п... |
| 20.12.2023 | SQL HowTo: итоги по строкам и столбцам «в одно действие» | Немного отвлечемся от простых SELECT и посмотрим на реальной бизнес-задаче построения различных "тепловых карт" и "шахматок", как знание возможностей SQL может облегчить жизнь и разработчику, и его базе.
Обычно это начин... |
| 28.11.2023 | SQL HowTo: TOP-N на субинтервалах | Периодически сталкиваюсь с однотипными задачами вида "показать TOP-N позиций на каждом из вложенных интервалов некоторого периода".
Это может быть "5 лучших по успеваемости студентов в каждом семестре за последний учебный год... |
| 31.07.2023 | Всегда ли хорош Index Only Scan? | Среди применяемых в PostgreSQL методов доступа к данным Index Only Scan стоит особняком, считаясь у многих разработчиков "волшебной пилюлей" для ускорения работы запроса - мол, "Index Scan - плохо, Index Only Scan - хорошо, к... |
| 07.06.2023 | Тензор: PRO своих | В нашем блоге так много статей о технологиях, научных решениях, новых приложениях и так мало про тех, кто стоит за всеми этими строчками кода, про обычных людей. Хотим рассказать о людях, которые ежедневно делают наш продукт лучше.
А кто на... |
| 25.04.2023 | Python Дайджест: как ускорить Django проект до (почти) максимума | Завершение цикла статей про техническое оживление Python Дайджест. В первых трех частях рассказано как был совершен переход с Python 3.4 на Python 3.11 и Django 4, отформатирована вся кодовая база с pre-commit, настроена автоматизация задач... |
| 21.02.2023 | SQL HowTo: крупицы золота в реестре | В большинстве учетных систем, типа нашего СБИС, рано или поздно возникает проблема быстрого отображения реестра, в который по просьбам бизнес‑пользователей накручено несколько комбинируемых фильтров с очень редкой выборкой, ну никак не ложа... |
| 14.02.2023 | Колоночная база данных в PostgreSQL 15 и факты о территории России по данным OpenStreetMap | Продолжим тему из публикации «Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap».
Сегодня визуализируем 15 мест где в России больше всего зданий. В этом нам поможет мой проект openstreetmap_h3 и PostgreSQL 15. На данный м... |
| 13.01.2023 | PostgreSQL Antipatterns: Индиана Джонс и максимальное значение ключа, или В поисках «последних» записей | Сегодняшняя задача вполне традиционна для любых учетных систем - поиск записей, содержащих максимальное значение по каждому из ключей. Что-то вроде "покажи мне последний заказ по каждому из клиентов", если переводить в прикладную ... |
| 26.12.2022 | PostgreSQL в «Тензоре» — публикации за год (#3) | Под занавес уходящего года предлагаю традиционно вспомнить, про какие интересные возможности и особенности работы с PostgreSQL мы рассказали в нашем блоге.
Если не видели дайджест за прошлый год — время наверстать упущенное!Анализ запросов ... |
| 20.12.2022 | Опыт работы «1С:ERP» в ландшафте Linux + PostgreSQL – 7 лет | В связи с обострением вопросов импортозамещения многие задумываются о переходе на системы, позволяющие заменить зарубежные аналоги, или уже его начали. Мы решили поделиться с вами 7-летним опытом установки и эксплуатации системы Linux + Pos... |
| 01.11.2022 | PostgreSQL, что в логе твоем? | Слепцы ощупывают различные аспекты слона
Наверняка, многие из вас пользуются explain.tensor.ru - нашим сервисом визуализации PostgreSQL-планов или уже даже развернули его на своей площадке. Но визуализация конкретного плана - это лишь небол... |
| 29.07.2022 | PostgreSQL Antipatterns: где скаляру в GiST место? | Картинка из статьи Егора Рогова
В PostgreSQL есть "волшебный" тип индекса GiST, который позволяет быстро искать разные сложные вещи - от интервалов до массивов и даже реализовывать полнотекстовый поиск.
Про его внутреннее устройст... |
| 20.07.2022 | Self-hosted EXPLAIN: наглядно и безопасно | С момента первой же хабрапубликации о возможностях нашего сервиса визуализации планов запросов PostgreSQL explain.tensor.ru (а было это уже больше 2 лет назад) пользователи задавали резонный вопрос: "Все у вас круто, но у нас в запроса... |
| 07.07.2022 | PostgreSQL Antipatterns: куда крутить NULLS | Периодически приходится разбирать случаи внезапного промаха запроса мимо "вроде бы подходящего" индекса - а все дело оказывается в чуть-чуть не той сортировке.
Давайте посмотрим на примере:
CREATE TABLE tstord AS SELECT i , CASE W... |
| 29.06.2022 | SQL HowTo: обход дерева иерархии «по курсору» через двойную рекурсию | Порядок обхода узлов дерева иерархии
В предыдущих статьях "PostgreSQL Antipatterns: навигация по реестру", "PostgreSQL 13: happy pagination WITH TIES" и "SQL HowTo: курсорный пейджинг с неподходящей сортировкой"... |
| 30.05.2022 | «Ленивый сахар» PostgreSQL | Блиц, Блиц, скорость без границ!
SQL - декларативный язык - то есть вы описываете "что" хотите получить, а СУБД сама решает, "как" именно она будет это делать. Некоторые из них при этом позволяют им "подсказывать&qu... |
| 05.05.2022 | PostgreSQL Antipatterns: в этом плане кто-то лишний | Должен остаться только один!
Сегодня будет рассказ про избыточные группировки и сортировки в SQL-запросах - как они возникают, по каким признакам их можно потом вычислить и как избавиться от них.Aggregate
Недавно на глаза попался примерно в... |
| 26.04.2022 | Псс, парень… индекс нужен? | Индексы PostgreSQL оптом и в розницу
Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: "Как сделать мой запрос быстрее?". Классический ответ - необходимо создать подходящий индекс. Но куд... |
| 13.04.2022 | «Импортозамещаем» анализ планов PostgreSQL | Вчера Hubert 'depesz' Lubaczewski закрыл доступ с российских IP ко всем своим сайтам, включая широко известный визуализатор планов PostgreSQL-запросов explain.depesz.com.
Но это не беда, потому что в компании "Тензор" мы разработа... |
| 29.03.2022 | SQL HowTo: разные варианты работы с EAV | Соблазн использовать модель EAV (Entity-Attribute-Value) при организации структуры БД весьма велик, особенно когда предметная область заранее плохо известна (или разработчик просто не хочет в нее углубляться). Это ведь так удобно - создать ... |
| 14.02.2022 | PostgreSQL Antipatterns: рекурсивные грабли на ровном месте, или Сказка о потерянном времени | В моей практике ускорения SQL-запросов для PostgreSQL, в большинстве случаев, все сводится к применению типовых методик - их не особенно-то и много, и прочитать про большинство из них можно в моем профиле.
Но иногда обнаруживаются очень стр... |
| 19.01.2022 | SQL HowTo: считаем «уников» на интервале | Для систем управления бизнесом часто приходится решать очень похожий класс задач по вычислению количества уникальных объектов на произвольном временном интервале. В контексте CRM это могут быть "пользователи, обращавшиеся на горячую ли... |
| 17.01.2022 | Реверс-инжинирим структуру БД PostgreSQL по плану запроса к ней | Большая часть оптимизаций запросов к базам PostgreSQL может выполняться "механически", следуя разного рода маркерам в плане выполнения запроса, которые подскажут, что и как можно ускорить. Но "глубинные" переработки алго... |
| 24.12.2021 | PostgreSQL: занимательный пример работы индексов, планировщика запросов и магии | В начале месяца я прочитал доклад про индексы в базах данных для Saint P Ruby Community и буквально через несколько дней жизнь не замедлила подкинуть мне показательный пример работы индексов, планировщика баз данных и важности обновления СУ... |
| 25.11.2021 | PostgreSQL в «Тензоре» — публикации за год (#2) | Добро пожаловать под кат, если вдруг вы пропустили какие-то из наших статей за прошедший год об интересных и полезных возможностях PostgreSQL, которые мы узнаем при разработке нашей системы полного цикла управления бизнесом СБИС — от кадров... |
| 16.11.2021 | SQL HowTo: делаем из мухи слона (алгоритм Ли) | Правила игры очень просты: надо построить цепочку слов от начального (МУХА) до конечного (СЛОН), на каждом шаге меняя только одну букву. При этом могут использоваться только русские 4-буквенные нарицательные существительные в начальной форм... |
| 13.09.2021 | Кластеризуем миллионы планов PostgreSQL | Как найти самые "горячие" запросы на вашем PostgreSQL-сервере? Поискать их в логе и проанализировать план или воспользоваться расширением pg_stat_statements.
А если в лог попадает миллион запросов за сутки?.. Тогда любое значение ... |
| 02.09.2021 | КЛАДРируем адреса произвольной формы (ч.2 — подстрочный поиск) | В первой части серии статей про работу с адресами по КЛАДР мы научились импортировать данные этого справочника к себе в базу и превращать их во что-то более удобное для дальнейшей работы.
Сегодня же займемся реализацией конкретных прикладны... |
| 24.08.2021 | PostgreSQL Antipatterns: «где-то я тебя уже видел...» | Иногда при анализе производительности запроса на предмет "куда ушло все время" возникает стойкое ощущение deja vu, что вот ровно этот же кусок плана ты уже где-то раньше видел...
Пролистываешь выше - и таки-да, вот он рядом - но п... |
| 17.08.2021 | PostgreSQL Antipatterns: «слишком много золота» | Иногда мы пишем SQL-запросы, мало задумываясь над тем фактом, что сначала они должны быть по сети как-то доставлены до сервера, а затем их результат - обратно в клиентское приложение. Если при этом на пути до сервера присутствует еще и пуле... |
| - | Чего «энтерпрайзу» в PostgreSQL не хватает | В конце прошлого года Иван Панченко предложил мне рассказать на внутреннем семинаре Postgres Pro, чего, по нашему опыту использования PostgreSQL в "кровавом энтерпрайзе" "Тензора", не хватает в этой СУБД.
С докладом пока... |
| - | Борем deadlock при пакетном UPDATE | Однажды при выполнении достаточно тривиального запроса...
UPDATE tbl SET val = val + 1 WHERE id IN (1, 2, 3);
... вы получаете ошибку:
ERROR: deadlock detected DETAIL: Process 19260 waits for ShareLock on transaction 550; blocked by process... |
| - | PostgreSQL Antipatterns: когда мешает внешний ключ | Внешние ключи (foreign keys) - мощный и удобный механизм контроля логической целостности данных в базе. Но он бывает не только лишь полезен, и может неплохо пригрузить вашу БД.
Внимательный взгляд на план запроса поможет избежать многих про... |
| - | Анализируем «слона» вместе с коллегами | Если ваша жизнь DBA, сопровождающего PostgreSQL, наполнена вопросами "а почему так медленно?" и "как сделать, чтобы запрос не тормозил?", наш сервис анализа и визуализации планов запросов explain.tensor.ru сделает ее нем... |