§ Новая версия sql-tutorial уже доступна, хотя реконструкция еще не завершена. Спешили, как могли. 
Если вы заметите какие-нибудь ошибки, сообщите нам.
§ Изменения среди лидеров рейтинга
Рейтинг Участник (решенные задачи)
28 gennadi_s (171)
80 _Bkmz_ (192, 197, 201, 256)
§ Лидеры недели
Продолжить чтение "Новости за 2025-06-07 - 2025-06-13"
Пересказ статьи Semab Tariq. Performance impact of using ORDER BY with LIMIT in PostgreSQL
При запросах к большим наборам данных в PostgreSQL сочетание предложений ORDER BY и LIMIT может существенно влиять на производительность. ORDER BY сортирует данные, а LIMIT ограничивает число возвращаемых строк, но вместе они создают узкое место в производительности. Понимание взаимодействия этих операций и оптимизация их использования представляется весьма важным для поддержания эффективной производительности базы данных и гарантии быстрого выполнения запросов.
В этой статье мы рассмотрим, как они могут повлиять на производительность запроса.
Ниже приведена структура простой таблицы с именем person, которая будет использоваться в наших тестах.
Продолжить чтение "Влияние на производительность использования ORDER BY с LIMIT в PostgreSQL"
Пересказ статьи lukaseder. Emulating SQL FILTER with Oracle JSON Aggregate Functions
В стандарте SQL:2003 есть крутая функция -
агрегатное предложение FILTER, которое поддерживается естественным образом по крайней мере в этих СУБД:
- ClickHouse
- CockroachDB
- DuckDB
- Firebird
- H2
- HSQLDB
- PostgreSQL
- SQLite
- Trino
- YugabyteDB
Следующая агрегатная функция вычисляет число строк на группу, которая удовлетворяет предложению FILTER:
Продолжить чтение "Эмуляция SQL FILTER с помощью агрегатных функций JSON в Oracle"
§ Изменения среди лидеров рейтинга
Рейтинг Участник (решенные задачи)
29 gennadi_s (170)
§ Лидеры недели
Участник w_sel all_sel select dml Всего Рейтинг
Вольхин С.А. (Sergei Volkhin) 14 85 32 0 32 330
Petrov O.M. (aist13) 15 15 19 0 19 4945
Noname N.N. (Artem74) 14 22 18 0 18 1806
Petrov (fdsadmasc) 14 14 17 0 17 5163
qqqq A.H. (aaaabbbb) 14 14 17 0 17 5168
GMM (gmm_sql) 11 22 14 0 14 3793
Хохлов А.Н. (Хохлов А.Н.) 7 8 10 33 43 2304
Матвеев М. (Матвеев Максим) 4 49 8 0 8 1360
Belskiy V. (Gambit87) 3 34 7 0 7 1415
Макаров И.А. (_Bkmz_) 2 161 6 0 6 93
Иванов К.А. (Монсун) 3 49 6 0 6 1048
Абрамова Ю. (GalaxyTears) 3 43 6 0 6 1446
Продолжить чтение "Новости за 2025-05-31 - 2025-06-06"
Пересказ статьи Tarik Favero. PostgreSQL Execution plan algorithms
В этой статье описываются наиболее общие алгоритмы, которые PostgreSQL может использовать в плане выполнения данного запроса. Примите к сведению, что это не полный список; позднее могут быть добавлены другие алгоритмы.
Алгоритмы пути доступа
Все планы выполнения описывают способ доступа к данным для обеспечения вывода результатов запроса. Поэтому мы обнаружим список операторов, которые выполнялись или будут выполняться для получения результатов.
Мы увидим такие алгоритмы доступа к данным, как Seq Scan, Index Scan, Index-only scan, Bitmap index scan, Bitmap heap scan и их параллельные реализации. В зависимости от условий соединения в JOIN мы увидим алгоритмы комбинации таблиц, такие как Nested loop, Hash-join и Merge. Кроме того, будет представлена информация относительно агрегации, сортировки и буферизации.
Каждый алгоритм имеет свои собственные особенности, которые в зависимости от множества факторов могут оказаться более или менее производительными. Давайте более подробно рассмотрим каждый алгоритм доступа.
Продолжить чтение "Алгоритмы плана выполнения в PostgreSQL"
Пересказ статьи Edward Pollack. Effective Strategies for Storing and Parsing XML in SQL Server
XML представляет собой общепринятый формат хранения для данных, метаданных, параметров или других полуструктурированных данных. По этой причине он часто попадает в базы данных SQL Server и возникает потребность в его обслуживании наряду с другими типами данных.
Несмотря на то, что реляционные базы данных не являются оптимальным местом хранения и обработки данных XML, такая необходимость возникает из-за требований приложения, удобства или необходимости держать эту информацию в непосредственной близости с другими данными приложения.
В этой статье рассматриваются различные распространенные проблемы, связанные с XML, и функциональность, которой обладает SQL Server, чтобы максимально упростить решение этих проблем.
Продолжить чтение "Эффективные стратегии хранения и парсинга XML в SQL Server"
§ Лидеры недели
Участник w_sel all_sel select dml Всего Рейтинг
Новиков С.В. (@Ser589QA) 8 89 18 0 18 366
Вольхин С.А. (Sergei Volkhin) 7 71 17 15 32 437
А Б.В. (dsf4wsfw) 14 14 17 0 17 5161
GMM (gmm_sql) 10 11 14 0 14 5335
Матвеев М. (Матвеев Максим) 5 45 10 0 10 1460
Bulyakarov S. (Sa1avat) 5 130 7 0 7 174
Иванов К.А. (Монсун) 2 46 4 0 4 1114
§ Претенденты на попадание в TOP 100
Рейтинг Участник (решенные задачи, время в днях)
174 Sa1avat (130, 103.199)
345 AstroZomb (83, 4507.944)
366 @Ser589QA (89, 105.854)
Продолжить чтение "Новости за 2025-05-24 - 2025-05-30"
Пересказ статьи Maly Mohsem Ahmed. Enhancing Logging Functionality with PostgreSQL 15’s new JSON Logging Feature
В PostgreSQL появилась новая замечательная функция: журнализация JSON. Хотя журналы JSON занимают больше места, чем журналы в традиционных форматах, они предлагают значительные улучшения, такие как облегчение парсинга и обработки. Эта возможность появилась, начиная с PostgreSQL 15.
Конфигурирование журнализации JSON
Чтобы включить журнализацию JSON, вам необходимо настроить файл postgresql.conf следующим образом:
log_destination = 'jsonlog' # Доступные значения: сочетание stderr, csvlog, jsonlog, syslog и eventlog (независимо от платформы).
logging_collector = on # Требуется для захвата stderr, jsonlog и csvlog в файлы журнала. Это должно быть включено для csvlog и jsonlog.
С этими настройками вывод из журнала может выглядеть следующим образом:
Продолжить чтение "Улучшение функциональности журнализации с помощью новой функции JSON в PostgreSQL 15"
Пересказ статьи DbVisualizer. Using hstore for Storing Unstructured Data in PostgreSQL
В PostgreSQL тип данных hstore является мощным средством для хранения пар ключ-значение в одном столбце, идеальным для управления полуструктурированными и неструктурированными данными. В этой статье дается обзор hstore, содержащий его использование, включение и практические примеры его приложения.
Что такое hstore в PostgreSQL?
hstore позволяет сохранять пары ключ-значение в строковом формате в одном столбце. Эта гибкость идеально удовлетворяет пожеланиям пользователей, хорошо подходит для хранения конфигурационных параметров или метаданных. Вот простой пример:
ALTER TABLE users ADD COLUMN metadata hstore;
Продолжить чтение "Использование hstore для хранения неструктурированных данных в PostgreSQL"
§ Лидеры недели
Участник w_sel all_sel select dml Всего Рейтинг
Bulyakarov S. (Sa1avat) 12 125 27 0 27 179
Вольхин С.А. (Sergei Volkhin) 14 64 24 13 37 610
Иванов К.А. (Монсун) 4 44 8 16 24 1151
Noname N.N. (Artem74) 6 7 8 0 8 2909
Firsin A.A. (xlam) 4 4 5 0 5 7430
Ешану М.В. (MaxEshanu) 4 4 5 0 5 7526
§ Изменения среди лидеров рейтинга
Рейтинг Участник (решенные задачи)
29 gennadi_s (169)
Продолжить чтение "Новости за 2025-05-17 - 2025-05-23"
Пересказ статьи Hafidz Mahrus. Enhancing Database Text Search
В мире реляционных баз данных MySQL является одной из наиболее популярных, благодаря легкости использования и масштабируемости. В то время как MySQL замечательно себя показывает в хранении и извлечении структурированных данных, она может быть не так хороша при выполнении полнотекстового поиска в больших объемах неструктурированного текста. И тут вступают в действие возможности полнотекстового поиска в MySQL.
Полнотекстовый поиск является мощным средством в MySQL, которое позволяет эффективно выполнять поиск текста в больших наборах неструктурированных данных. В этой статье мы подробно исследуем полнотекстовый поиск в MySQL, включая его функциональность, синтаксис, оптимизацию производительности и реальные случаи использования.
Продолжить чтение "Улучшение поиска текста в базе данных"
Пересказ статьи Koen Verbeeck. SQL Server JSON Functions JSON_OBJECTAGG and JSON_ARRAYAGG
Мне необходимо построить JSON из данных, находящихся в базе данных, но оказалось, что существующая конструкция FOR JSON PATH ограничена, когда данные не находятся в одной единственной строке, а разбросаны по множеству строк. Есть ли другой метод обработки данных JSON в SQL Server? Узнайте, как использовать новые функции JSON в SQL Server - JSON_OBJECTAGG и JSON_ARRAYAGG.
Были введены две новые функции T-SQL для создания документов JSON из имеющихся данных: JSON_OBJECTAGG и JSON_ARRAYAGG. Обе являются агрегатными функциями, которые помогают создать представления JSON из данных, хранящихся в множестве строк.
Здесь мы познакомимся с обоими функциями. На момент написания статьи эти функции доступны только в Azure SQL DB, Azure SQL Managed Instance и Fabric SQL Database. Эти функции должны быть включены в следующие версии SQL Server.
Продолжить чтение "Функции JSON_OBJECTAGG и JSON_ARRAYAGG в SQL Server"
§ Популярные темы недели на форуме
Топик Сообщений Просмотров
Guest's book 6 19
29 (Learn) 3 11
54 (Learn) 2 9
51 (Learn) 2 12
47 (Learn) 2 9
§ Авторы недели на форуме
Автор Сообщений
selber 3
Bael 2
pegoopik 2
Продолжить чтение "Новости за 2025-05-10 - 2025-05-16"
Пересказ статьи Jared Westover. Replace SQL Cursors with Set Based Operations – OUTPUT and MERGE
Курсоры имеют плохую репутацию в SQL Server, и вполне залуженную. Они находят свое применение в таких областях, как выполнение задач по обслуживанию баз данных. Я избегаю их, когда дело касается стандартного кода T-SQL. Проблемы производительности становятся заметными при работе с таблицами сколь-нибудь заметного размера. Если вы имеете за спиной более процедурный язык, бывает трудно думать не в терминах курсора. Но не беспокойтесь, есть надежда.
В этой статье я хочу сделать обзор типичного паттерна, который мы все видели. Он включает использование курсора или цикл WHILE для вставки или обновления данных. Начнем с того, чтобы разобраться, почему разработчик может по умолчанию начинать с курсора. Далее я построю типичный курсор для решения этой задачи. Затем мы разберемся, как можно быстрей достичь того же вывода с помощью операции на основе множеств.
Продолжить чтение "Замена курсоров SQL операциями на основе множеств - OUTPUT и MERGE"
Пересказ статьи Cláudio Silva. What happens when we drop a column on a SQL Server table? Where's my space
Короткий ответ: столбец отмечается как "удаленный" и перестанет быть видимым/используемым. Но, что наиболее важно - размер записи/таблицы останется неизменным.
Операция с метаданными
Удаление столбца является логической операцией с метаданными, а не физической. Это означает, что данные не удаляются/перезаписываются при этом действии. Если говорить об удалении данных (записей), то как упоминает
здесь Пол Рэндал:
«стоимость этого будет отложена для вставляющих, а не для удаляющих».
Продолжить чтение "Что происходит при удалении столбца в таблице SQL Server? Где мое пространство?"