Skip to content

Ранжирование в Python и SQL

Пересказ статьи Nathan Rosidi. Ranking in Python and SQL


Мы обсуждали основы ранжирования в Python в нашем руководстве “Methods for Ranking in Pandas”, где рассматривались наиболее употребимые параметры функции ранжирования в Pandas. В частности, мы изучали различные методы ранжирования, которые имеют решающее значение в борьбе с родственными значениями. Помимо методов ранжирования функция ранжирования в Pandas обладает и другими параметрами, которые позволяют выполнить дальнейшую настройку и уточнение способа определения рангов. Понимание этих параметров важно при работе с наборами данных, которые требуют более таких сложных методов ранжирования, как процентильное ранжирование или работа с недостающими данными.

Continue reading "Ранжирование в Python и SQL"

Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов

Пересказ статьи Crafting-Code. Tools and Techniques for Profiling and Debugging Slow-Running SQL Queries


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

Профилирование и отладка медленно выполняющихся запросов SQL являются важными навыками администраторов баз данных, разработчиков и всех тех, кто отвечает за обслуживание приложений на основе базы данных.

В этой статье мы рассмотрим различные инструменты и методы для обнаружения, анализа и оптимизации медленно выполняющихся SQL-запросов, включая практические примеры кода.
Continue reading "Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов"

Понимание планов в PostgreSQL

Пересказ статьи Muhammad Ali. Understand Explain Plans in PostgreSQL


В предыдущей статье мы обсуждали утилиту pg_stat_statements - инструмент для идентификации запросов, интенсивно использующих ресурсы - памяти, ЦП или ввода/вывода.

Теперь предположим, что вы определились с запросами, которые хотите исследовать дальше. Команда EXPLAIN используется для генерации планов выполнения. Она включает:

Continue reading "Понимание планов в PostgreSQL"

Как работает секционирование в PostgreSQL и почему вас это должно беспокоить?

Пересказ статьи Adam Furmanek. How Does Partitioning Work in PostgreSQL and Why Should You Care?


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

Continue reading "Как работает секционирование в PostgreSQL и почему вас это должно беспокоить?"

Индексы PostgreSQL: что это такое и как они могут помочь

Пересказ статьи Henrietta Dombrovskaya. PostgreSQL Indexes: What They Are and How They Help


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

Кажется, что было бы неплохо поговорить об индексах до обсуждения планов выполнения, но планы запросов - это хорошее место для начала движения в сторону решения проблем производительности! Здесь мы собираемся поговорить об индексах, зачем они нам нужны, как они могут нам помочь, и как они могут усугубить ситуацию.
Continue reading "Индексы PostgreSQL: что это такое и как они могут помочь"

Параллелизм базы данных в PostgreSQL

Пересказ статьи Mohan Saraswatipura. Database Concurrency in PostgreSQL


Управление параллелизмом является важным аспектом в системах баз данных, которые имеют дело с множеством параллельно выполняющихся транзакций. В PostgreSQL применяются различные методы для обеспечения параллельного доступа к базе данных при поддержке согласованного состояния данных с использованием свойств атомарности и изоляции ACID (атомарность, согласованность, изоляция и длительность).
Continue reading "Параллелизм базы данных в PostgreSQL"

Что такое план выполнения и как его найти в PostgreSQL

Пересказ статьи Henrietta Dombrovskaya. What Is an Execution Plan and How to Find It in PostgreSQL


В последнем блоге (Когда настройка параметра в PostgreSQL не помогает) мы сравнили несколько планов выполнения для оператора SQL по мере изменения параметров и индексов. При этом не было упомянуто то, что собой представляет план выполнения, как можно получить план выполнения запроса и как интерпретировать результат. В этом блоге мы глубже погрузимся в эту тему.
Continue reading "Что такое план выполнения и как его найти в PostgreSQL"

Понимание предложения ROWS BETWEEN в SQL

Пересказ статьи Rahma Hassan. Understanding the “ROWS BETWEEN” Clause in SQL


В SQL предложение “ROWS BETWEEN” является мощным средством, которое позволяет вам определить окно строк для анализа или вычислений непосредственно в запросе. Указывая диапазон строк, вы можете выполнять вычисления или применять агрегатные функции к подмножеству данных, а не ко всему результирующему набору. Цель данной статьи - сделать понятным предложение “ROWS BETWEEN” и его использование на примерах.
Continue reading "Понимание предложения ROWS BETWEEN в SQL"

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


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

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Continue reading "Давайте поговорим о схеме базы данных"

Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM

Пересказ статьи Grant Fritchey. Learning PostgreSQL With Grant Introducing VACUUM


Хотя имеется много функций в PostgreSQL, которые действительно подобны имеющимся в SQL Server, есть и несколько уникальных. Одна из этих уникальных функций называется VACUUM. Для себя я сравниваю ее с tempdb в SQL Server. Не потому, что она действует подобным образом или служит подобным целям. Абсолютно нет. Просто потому, что обе они фундаментальны с точки зрения поведения соответствующих систем, обе достаточно сложны в своей работе, в том, что они делают, и в способах, которыми мы можем их испортить.
Continue reading "Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM"

Роль в PostgreSQL. Часть 1

Пересказ статьи Shivayan Mukherjee. The PostgreSQL Role: Part 1


В этой статье рассматривается объект роли в базе данных PostgreSQL, который группирует вместе одну или более привилегий и может быть присвоен пользователям. Роль представляет собой коллекцию разрешений или привилегий, которые могут быть предоставлены одному или более пользователям или другим ролям. Continue reading "Роль в PostgreSQL. Часть 1"

SQL - перечисляемые типы данных

Пересказ статьи Rubihali. SQL — Repeated Data Types


Перечисляемые типы данных более сложны для запроса, чем обычные типы данных, такие как текст, строка, целые числа или дата/время. Здесь мы рассмотрим эти сложные типы данных на нескольких примерах.
Continue reading "SQL - перечисляемые типы данных"

Когда настройка параметра в PostgreSQL не помогает

Пересказ статьи Henrietta Dombrovskaya. When PostgreSQL Parameter Tuning is not the Answer


Так много говорится о настройке параметров, и это всегда помогает?

Добро пожаловать в третью и последнюю статью серии "магия параметров". В двух предыдущих статьях мы обсудили, как настройка параметров PostgreSQL может помочь улучшить общую производительность системы. Однако самый первый параграф самой первой статьи этой темы утверждает, что:

Хотя некоторая настройка параметров действительно может улучшить производительность базы данных, мы обычно говорим о 10%, 20% и в более редких случаях о 50% улучшении производительности, если некоторые параметры установлены плохо. Эти цифры могут звучать впечатляюще, но индивидуальная рутинная оптимизация запроса делает его выполнение в несколько раз быстрее, а в некоторых случаях в десять и более раз быстрее, а реструктуризация приложений может улучшить общую производительность системы в сотни раз!
Continue reading "Когда настройка параметра в PostgreSQL не помогает"

Шесть вещей для мониторинга в PostgreSQL

Пересказ статьи Ryan Booz. Six Things to Monitor with PostgreSQL


В этой статье описываются шесть метрик производительности, которые должны быть на первом месте вашей стратегии мониторинга PostgreSQL. Используя инструмент, подобный SQL Monitor, для отслеживания этих метрик во времени и устанавливая для них базовые линии, вы сможете сразу выявлять нехватку ресурсов или проблемы с производительностью, быстро диагностируя причину и предотвращая возникновение проблем для пользователей.
Continue reading "Шесть вещей для мониторинга в PostgreSQL"

Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey

Пересказ статьи Grant Fritchey. Querying PostgreSQL: Learning PostgreSQL with Grant


Написание запросов для получения данных из базы является, вероятно, единственной наболее общей задачей при работе с данными. Работа с данными в PostgreSQL не является исключением. Более того, PostgreSQL имеет несомненно богатый, широкий и разнообразный набор механизмов для извлечения данных. От стандартного SELECT… FROM… WHERE до оконных функций и рекурсивных запросов, PostgreSQL имеет все это. Честно говоря, я не могу обещать рассмотреть все это в единственной статье. Кроме того, поскольку большая часть функциональности фактически идентична той, с которой я чувствую себя более уверенно (SQL Server), я не превращаю это в PostgreSQL 101 для оператора SELECT. Continue reading "Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey"