Pull to refresh
-13
0
Евгений Фадеев @eefadeev

Разработчик БД

Send message

Тюнинг производительности запросов в PostgreSQL

Reading time8 min
Views31K
Настройка производительности базы данных — разработчики обычно либо любят это, либо ненавидят. Я получаю удовольствие от этого и хочу поделиться некоторыми методами, которые я использовал в последнее время для настройки плохо выполняющихся запросов в PostgreSQL. Мои методы не является исчерпывающими, скорее учебником для тех, кто просто тащится от тюнинга.

Поиск медленных запросов


Первый очевидный способ начать тюнинг — это найти конкретные операторы, которые работают плохо.

pg_stats_statements


Модуль pg_stats_statements — отличное место для начала. Он просто отслеживает статистику выполнения операторов SQL и может быть простым способом поиска неэффективных запросов.

Как только вы установили этот модуль, системное представление с именем pg_stat_statements будет доступно со всеми своими свойствами. Как только у него будет возможность собрать достаточный объем данных, ищите запросы, которые имеют относительно высокое значение total_time. Сначала сфокусируйтесь на этих операторах.

SELECT *
FROM
  pg_stat_statements
ORDER BY
  total_time DESC;

user_id dbid queryid query calls total_time
16384 16385 2948 SELECT address_1 FROM addresses a INNER JOIN people p ON a.person_id = p.id WHERE a.state = @state_abbrev; 39483 15224.670
16384 16385 924 SELECT person_id FROM people WHERE name = name; 26483 12225.670
16384 16385 395 SELECT _ FROM orders WHERE EXISTS (select _ from products where is_featured = true) 18583 224.67

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Интеграция ClangFormat и Notepad++

Reading time5 min
Views8.8K
ClangFormat является одним из лучших инструментов для автоматического форматирования исходных кодов на языках C, C++, Java, JavaScript, Objective-C, C#. Существуют плагины для популярных сред разработки (IDE), но часто нужно быстро отформатировать файл или часть файла с исходным кодом без запуска громоздкой IDE, поэкспериментировать с настройками форматирования и разными версиями ClangFormat с возможностью быстрой отмены изменений. Использовать для этих целей консольную версию ClangFormat неудобно. Возможным решением является вызов ClangFormat из текстового редактора. На официальном сайте описаны способы интеграции с редакторами Vim, Emacs и некоторыми другими, но по интеграции с Notepad++ информации нет. Далее приводится несложная инструкция применительно к Notepad++ (для Windows).
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments4

Удаление зубов мудрости: как это делается?

Reading time6 min
Views346K
image
Уважаемые друзья, в прошлый раз мы с вами говорили о том, какие же бывают зубы мудрости, когда их нужно удалять, а когда нет. А сегодня я подробно и во всех деталях расскажу, как непосредственно проходит удаление «приговорённых» зубов. С картинками. Поэтому рекомендую особо впечатлительным людям и беременным женщинам нажать сочетание клавиш «Ctrl +». Шутка.
Читать дальше →
Total votes 111: ↑100 and ↓11+89
Comments191

HBO, cпасибо что напомнил… «Чернобыльская аптечка» беларуского фармацевта

Reading time20 min
Views123K
Что бы ни сказали — не станем спорить
Что бы ни дарили — не станем верить

Егор Летов «Как листовка»

Думаю не стоит лишний раз говорить о нашумевшем сериале Чернобыль и эффективности такого «сериального» воздействия на массы. Особенно на массы, проживающие на территориях, показанных в фильме. Выход каждой новой серии сопровождается всплеском публикаций в FB. В каждой из которых горечь, страх, боль. Что в такой ситуации я могу сделать ("кто виноват и что делать?")? Могу только описать свой взгляд на терапию лучевых поражений. Спасибо родненькой кафедре химии высоких энергий и проф. Шадыро О.И., которые пестовали в своих лабораториях нас, непутевых фармацевтов-радиохимиков. Надеюсь своей статьей честь этой, легендарной некогда, кафедры я не опорочу.

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

В общем, спасибо, сценаристы HBO, за то, что всколыхнули Память. Мой посильный вклад — под катом. Рейтинг доступных (и не очень) антидотов, способных сработать при радиационном выбросе. В закладки — класть строго ВСЕМ! И прочитал сам — перекинь другу.

Читать дальше →
Total votes 227: ↑210 and ↓17+193
Comments272

Как Мегафон спалился на мобильных подписках

Reading time5 min
Views253K
Обсуждение операторов сотовой связи в Телеграм t.me/opsosru

Уже давно как не смешные анекдоты ходят истории о платных мобильных подписках на IoT устройствах.


С Пикабу

Всем понятно, что без действий сотовых операторов эти подписки не обходятся.
Читать дальше →
Total votes 626: ↑624 and ↓2+622
Comments681

Эволюционный дизайн баз данных

Reading time32 min
Views21K


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


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


В последнее десятилетие мы наблюдаем рост гибких методологий. По сравнению со своими предшественниками, они изменяют требования к дизайну баз данных. Одно из важнейших среди требований – идея эволюционной архитектуры. В гибком проекте вы предполагаете, что не можете заранее поправить требования системы. В результате, иметь детализированную, четкую стадию дизайна в начале проекта становится непрактично. Архитектура системы должна эволюционировать одновременно с итерациями софта. Гибкие методы, в частности, экстремальное программирование (XP), имеют набор методик, которые делают эту эволюционную архитектуру практичной.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments0

Взгляд биолога на мутационную теорию старения

Reading time15 min
Views18K
Здравствуйте!

По просьбам читателей я нашёл в себе силы написать продолжение вот этой статьи. Первая статья была направлена, главным образом, на обоснование существования и важности естественной смертности, а также необоснованности некоторых положений теорий «накопления ошибок». Я, пожалуй, продолжу эту статью в том же ключе, но на этот раз с небольшим уклоном к подходам поиска эликсиров бессмертия – ведь всех же интересуют именно они.

В первой статье явление естественной смертности мы рассматривали, так сказать, с самой высокой точки биологической организации. С этого уровня хорошо видно, за что могла «зацепиться» эволюция и начать устанавливать норму жизни для того или иного вида. С точки зрения создания эликсира бессмертия этот уровень нам совершенно не интересен, потому как к бессмертию мы хотим привести конкретную особь, а конкретные особи как известно не эволюционируют в биологическом смысле. Нам интересен механизм, посредством которого приговор приводится к исполнению и то, как сломать этот механизм. А значит в этой статье мы будем рассматривать проблему с более «низкой» точки зрения – индивидуальном и клеточно-молекулярном (я постараюсь сделать это как можно понятнее без зубодробительных биохимиоругательных слов).
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments121

Взгляд биолога на корни нашего старения

Reading time16 min
Views35K
Здравствуйте!

Нижеследующий текст изначально набирался как продолжение вот этого диалога, но размер ответа превысил все мыслимые размеры, а учитывая что на Хабре существует спрос на тему истоков старения и смерти от оной, я решил оформить его (ответ) отдельной статьёй.

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

Эта статья написана полностью из головы, что называется на одном дыхании (правда в три захода), потому в ней минимальное количество ссылок и картинок – прошу понять и простить, либо написать в комментарии, возможно я что-то исправлю.
Читать дальше →
Total votes 79: ↑76 and ↓3+73
Comments156

Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL

Reading time5 min
Views570K

Я с удивлением обнаружил, что многие разработчики, даже давно использующие postgresql, не понимают оконные функции, считая их какой-то особой магией для избранных. Ну или в лучшем случае «копипастят» со StackOverflow выражения типа «row_number() OVER ()», не вдаваясь в детали. А ведь оконные функции — полезнейший функционал PostgreSQL.
Попробую по-простому объяснить, как можно их использовать.


Читать дальше →
Total votes 75: ↑73 and ↓2+71
Comments54

SQL ключи во всех подробностях

Reading time18 min
Views245K
В Интернете полно догматических заповедей о том, как нужно выбирать и использовать ключи в реляционных базах данных. Иногда споры даже переходят в холивары: использовать естественные или искусственные ключи? Автоинкрементные целые или UUID?

Прочитав шестьдесят четыре статьи, пролистав разделы пяти книг и задав кучу вопросов в IRC и StackOverflow, я (автор оригинальной статьи Joe «begriffs» Nelson), как мне кажется, собрал куски паззла воедино и теперь смогу примирить противников. Многие споры относительно ключей возникают, на самом деле, из-за неправильного понимания чужой точки зрения.

Содержание



Давайте разделим проблему на части, а в конце соберём её снова. Для начала зададим вопрос – что же такое «ключ»?
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments120

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity