Обновить
-14
-24
Ринат@pg_expecto

PostgreSQL Performance Engineer

Отправить сообщение

Я кажется понял суть, вашего замечания.

Нет, ошибки , тем более методологической - нет. Есть неполное описание эксперимента.

Кратко - тестовый запрос выполняется внутри хранимой функции, перед выполнением запроса для эксперимента с временной таблицей - временная таблица пересоздается. Для тестового запроса в любом эксперименте входные данные по периоду - случайны. В том числе и для эксперимента с использованием временной таблицы.

Дополню статью .

Спасибо за замечание.

это условие эксперимента - входные данные случайны.

Поскольку СУБД по сути своей есть стохастическая система.

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

Просьба уточнить тезис

С временной таблицей есть одна очень существенная особенность - размер таблицы случаен. При каждом вызове - разный. Это условие эксперимента.

Поэтому вполне вероятно, для данного вызова

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

По поводу:

Был ли смысл их создавать?

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

Время и ресурсы измерялись с создание temp таблицы?

Такой задачи не ставилось . И вряд ли будет отдельный эксперимент на эту тему.

В принципе - кому интересно - pg_expecto в github есть, демобаза 2.0 в github есть. Welcome.

У меня план экспериментов до конца года. К данной теме не буду возвращаться. Тем более после публикации итогов.

 сейчас многие технические конференции теряют фокус на пользе

Да, у меня такое же впечатление. Новых лиц практически нет. Новых тем практически нет.

я задал свой любимый классический уже вопрос

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

У меня все публикации на эту тему ;-) И я бы не сказал, что тема очень генерит обратную связь . Скорее наоборот - минусуют только влет и публикации и карму ;-) Ну это Хабр, не нужно удивляться и тем более как то переживать и реагировать. Просто объективная реальность, данная в ощущениях.

Мой классический вопрос на конференциях, докладах и статьях , как только встречается словосочетание "оптимизация производительности СУБД PostgreSQL" - "А производительность СУБД это что ? Как вы считаете метрику и определяете успешность оптимизации? Как вы оптимизируете то , что не измеряете?"

Ответы, за уже 2 года как я копаю тему, не отличаются разнообразием . И в живую спрашивал у коллег на митапе - ответы как под копирку. За 2 года ничего не изменилось.

Просто личный опыт - по итогам прошедшего года.

1) Потрачена масса рабочего и личного времени на подготовку презентации для доклада

2) Поданы 2 заявки на 2 конференции.

3) Отказ в регистрации.

Планы на следующий год - ресурсы и время пойдут на эксперименты и публикации в интернете. Затраты времени на подготовку доклада на конференциях себя не оправдывают.

По мнению нейросети:

Ключевые преимущества интернет-публикаций:

1. Скорость и своевременность (Timeliness)

  • Интернет: Публикация происходит практически мгновенно. Это критически важно в быстроразвивающихся областях (IT, нанотехнологии, биотехнологии), где информация устаревает за месяцы.

  • Конференция: Долгий цикл — подача тезисов, рецензирование, ожидание мероприятия, само выступление. Между подачей работы и ее представлением может пройти от 6 месяцев до года.

2. Глобальная доступность и охват аудитории (Accessibility & Reach)

  • Интернет: Статья доступна 24/7 для любого человека в мире с доступом в сеть. Это снимает географические и финансовые барьеры.

  • Конференция: Аудитория ограничена числом участников, которые смогли приехать в конкретное место в конкретное время, часто с учетом значительных затрат на командировку.

3. Постоянство и долгосрочная ценность (Permanence & Long-Term Value)

  • Интернет: Статья остается в сети навсегда (или на долгие годы), индексируется поисковыми системами. Ее можно найти через год, пять или десять лет после публикации.

  • Конференция: Выступление — это "событие-однодневка". Если оно не было записано и выложено в сеть, его ценность резко падает после окончания конференции.

4. Уровень детализации и глубина (Depth & Detail)

  • Интернет: Позволяет опубликовать полный текст с детальным описанием методик, расчетов, исходных данных, результатов, включая графики, таблицы и схемы высокого качества. Читатель может изучить материал в своем темпе.

  • Конференция: Формат выступления (обычно 15-20 минут) сильно ограничивает докладчика. Приходится жертвовать деталями, упрощать сложные моменты, что может исказить суть инженерной разработки.

5. Возможности интерактивности и мультимедиа (Interactivity & Multimedia)

  • Интернет: Можно использовать интерактивные графики, 3D-модели, встраивать видео с экспериментов, предоставлять ссылки на исходный код, базы данных, дополнительные материалы. Это значительно облегчает понимание сложных технических решений.

  • Конференция: Обычно ограничивается слайдами (PPT/PDF) и, в лучшем случае, коротким видео. Интерактивность в реальном времени почти невозможна.

6. Измеряемость impact и обратная связь (Metrics & Feedback)

  • Интернет: Легко отслеживать количество просмотров, скачиваний, цитирований. Системы комментариев и обсуждений позволяют получить структурированную обратную связь от коллег со всего мира.

  • Конференция: Обратная связь ограничена вопросами после выступления и личным общением в кулуарах. Измерить реальное влияние доклада очень сложно.

7. Стоимость (Cost)

  • Интернет: Многие репозитории (как arXiv, SSRN) и журналы с открытым доступом бесплатны или несут символические издержки для авторов. Для читателя доступ часто бесплатный.

  • Конференция: Значительные расходы на регистрационный взнос, проезд, проживание и питание.

Также , по личному опыту, единственное преимущество участия в конференции - еще один повод для встречи со старыми друзьями и коллегами. Да, это причина.

Update

позадавайте вопросы.

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

На следующей конференции - заданный вопрос(в онлайне) не был озвучен после доклада.

На крайней конференции (очно)- мне просто не дали микрофон.

Совпадение? Не думаю(с) ;-)

Какие подробности вас интересуют ?

Задача очень простая - получить случайную дату из периода.

Спасибо за спасибо .

Будет интересно понаблюдать.

Пример проще:

Да когда наткнулся на грабли, примерно такие примеры и делал.

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

Пришлось добавить действия перед расчетом коэффициента корреляции

1) Если вторая переменная константа - коэффициент корреляции не расчитывается

2) Использовать стандартизацию данных с помощью z-score

Например, можно считать TPS и execution time, а не "точки наблюдения" и будет точнее и понятнее

Это очень большая тема для комментария. Есть детали и с "точнее" и с "понятнее".

ЕСМНИП курсовик по дифурам, на Фортране. Приличный такой кирпичик был. Перфокарты потом в хозяйстве долго использовались

  • Суммарно тратил 56 минут процессорного времени

У вас в этом тезисе фактическая ошибка .

С помощью представления pg_stat_statements невозможно установить значение cpu_usage.

До 17й версии нет ожиданий позволяющих оценить даже косвенно утилизацию и ожидания CPU средствами СУБД PostgreSQL.

В 17 версии есть ожидание Timeout/SpinDelay , но это косвенный показатель.

Тестовые запросы для сценариев нагрузочного тестирования взяты из репозитория демобазы 2.0.

Демобаза 2.0 для PostgreSQL https://habr.com/p/956096/

Для сценария 4, запрос переписан с использованием array взамен max

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

Очень интересная точка зрения.

Давным-давно , еще в прошлом веке, в году эдак 1983-1985 однажды имел удачу беседовать с живым доктором философии . Ну стандартный вопрос безусому юноше - а чем планируешь заниматься, что интересно?

  • Очень интересна тема искусственного интеллекта. Хотелось бы заняться.

  • Ну , прежде чем заниматься попыткой воссоздать интеллект на компьютере нужно ответить на главный вопрос - а что такое интеллект и самосоздание? Нужно почитать Юнга и Фейербаха, для начала.

Прошло столько лет, разработкой искусственного интеллекта я так и не занялся появились другие темы - машинная графика, IP-телефония, СУБД, но только теперь становится понятен смысл сказанного доктором философии.

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

Они называют интеллектом алгоритмы построенные на математических вероятностях и статистике ;-) Это даже не смешно. Потому, что зашло - "народу нравитса". Теперь идет монетизация.

P.S. Примерно похожая ситуация , но на порядки проще, в области которой уже глубоко занимаюсь - анализ производительности СУБД . Меготонны статей, часы выступлений - но , проверено лично, задаешь докладчику вопрос - а вот у вас доклад про оптимизацию производительности, а производительность это ,что ? как вы ее измеряете перед тем как оптимизировать? и докладчик впадает в задумчивость и уныние.

С ИИ точно также, только масштабы несравнимы.

А вот это уже более интересно. Если использовать сложный тяжелый запрос и большую тестовую БД для нагрузочного тестирования то

В условиях данной тестовой среды с параллельной нагрузкой замена агрегатной функции MAX на конструкцию ARRAY не дает ожидаемого прироста производительности.

https://dzen.ru/a/aShnmmWcvx2BQRRq

Вначале любая оригинальная теория признается абсурдной, потом — верной, потом — самоочевидной и незначительной, и, наконец, столь важной и самобытной, что бывшие критики присваивают ее себе.— Уильям Джеймс (1842–1910)

Или другими словами, тоже мне очень нравится

Товарищ ! Нервы сожми в узду!

Взялся за дело - не охай.

Есть результат - посылай всех в ...

Нет результата - ....

ИИ просто не умеет чувствовать, а значит, его тексты — это просто сборник слов. Это научно доказано!

  • Не вызывает доверия:💔 Текст холодный и отстраненный.

  • Нет эмпатии: 🤖 Робот не понимает наших человеческих проблем.

  • Отсутствие креатива: 🧠Все идеи шаблонные и предсказуемые.

  • Эффект «долины странности»:🗺️ Иногда кажется, что текст писал человек, но потом понимаешь, что это не так, и становится не по себе.

1) Все эти причины периодически слышал от коллег в адрес своих статей . Самое прикольное - у тебя так сложно все написано, используй ИИ пусть перепишет чтобы любому с улицы стали понятны проблемы решения и результаты экспериментов по статистическому анализу производительности СУБД, ну объясни нам , мы не понимаем - что такое корреляция, дисперсия, медиана и коэффициент дивергенции , мы хотим креатива а не заумных непонятных слов.

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

Да. Знакомо, слышал.

А СУБД для нас это хранилка данных.

Цитата настоящего разработчика на конфколле по поводу деградации производительности информационной системы и проблем после старта опытно-промышленной эксплуатации .

-Вы почему эксклюзивную блокировку используете ?

-Это не мы. Это фреймворк .

Тоже реальная цитата, на том же конфколле.

А я еще полгода назад, когда только началось массовое использование сказал - "В области генерации тестов и семантического анализа текстов - человек в принципе не способен конкурировать с алгоритмами". Да это и не нужно.

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

В профессиональной области - реальные примеры использования нейросетей:

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

2)можно вручную пытаться найти одинаковые паттерны в текстах сотен SQL запросов. А можно использовать нейросеть и получить ответ меньше чем за минуту.

3)можно вручную анализировать причины ожиданий. А можно использовать нейросеть и получить быстрый анализ необходимых действий для оптимизации ожиданий СУБД.

Так, что забавно наблюдать истерику граничащую с паранойей - "спасите помогите ИИ" , "Эта статья плохая , ее ИИ сгенерил я ее читать не буду" :-)

Каждому молотку - свой гвоздь.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Администратор баз данных
Ведущий
SQL
PostgreSQL
Базы данных
Linux
Bash