Skip to content

Новости за 2025-05-17 - 2025-05-23

§ Лидеры недели

	Участник		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, включая его функциональность, синтаксис, оптимизацию производительности и реальные случаи использования.

Продолжить чтение "Улучшение поиска текста в базе данных"
Категории: MySQL

Функции JSON_OBJECTAGG и JSON_ARRAYAGG в SQL Server

Пересказ статьи 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"
Категории: T-SQL

Новости за 2025-05-10 - 2025-05-16

§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
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"

Замена курсоров SQL операциями на основе множеств - OUTPUT и MERGE

Пересказ статьи Jared Westover. Replace SQL Cursors with Set Based Operations – OUTPUT and MERGE


Курсоры имеют плохую репутацию в SQL Server, и вполне залуженную. Они находят свое применение в таких областях, как выполнение задач по обслуживанию баз данных. Я избегаю их, когда дело касается стандартного кода T-SQL. Проблемы производительности становятся заметными при работе с таблицами сколь-нибудь заметного размера. Если вы имеете за спиной более процедурный язык, бывает трудно думать не в терминах курсора. Но не беспокойтесь, есть надежда.

В этой статье я хочу сделать обзор типичного паттерна, который мы все видели. Он включает использование курсора или цикл WHILE для вставки или обновления данных. Начнем с того, чтобы разобраться, почему разработчик может по умолчанию начинать с курсора. Далее я построю типичный курсор для решения этой задачи. Затем мы разберемся, как можно быстрей достичь того же вывода с помощью операции на основе множеств.
Продолжить чтение "Замена курсоров SQL операциями на основе множеств - OUTPUT и MERGE"

Что происходит при удалении столбца в таблице SQL Server? Где мое пространство?

Пересказ статьи Cláudio Silva. What happens when we drop a column on a SQL Server table? Where's my space


Короткий ответ: столбец отмечается как "удаленный" и перестанет быть видимым/используемым. Но, что наиболее важно - размер записи/таблицы останется неизменным.

Операция с метаданными


Удаление столбца является логической операцией с метаданными, а не физической. Это означает, что данные не удаляются/перезаписываются при этом действии. Если говорить об удалении данных (записей), то как упоминает здесь Пол Рэндал:

«стоимость этого будет отложена для вставляющих, а не для удаляющих».
Продолжить чтение "Что происходит при удалении столбца в таблице SQL Server? Где мое пространство?"

Новости за 2025-05-03 - 2025-05-09

С Днем Победы!


§ Популярные темы недели на форуме

Топик		Сообщений	Просмотров
25 (Learn) 2 9
780 (SELECT) 2 10
101 (SELECT) 2 5

§ Авторы недели на форуме

Автор		Сообщений
sorokin andrei 4
pegoopik 2

§ Изменения среди лидеров рейтинга

Рейтинг	Участник (решенные задачи)
29 gennadi_s (168)

Продолжить чтение "Новости за 2025-05-03 - 2025-05-09"

Понимание разницы в производительности при добавлении столбцов в PostgreSQL

Пересказ статьи Hagen Hübel. Understanding the Performance Difference in Adding Columns in PostgreSQL


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



Вопрос


Представьте, что у вас есть большая таблица, содержащая десятки тысяч записей. Вы хотите добавить новый допускающий NULL-значения столбец без значения по умолчанию, а затем выполнить оператор UPDATE, чтобы установить для этого нового столбца заданное значение. Этот процесс занимает значительное время. Однако, если вы вместо этого добавляете новый столбец со значением по умолчанию, это не занимает так много времени. Почему имеет место такая разница в производительности?
Продолжить чтение "Понимание разницы в производительности при добавлении столбцов в PostgreSQL"

Статические курсоры

Пересказ статьи Hugo Kornelis. Plansplaining part 30 – Static cursors


В части 30 серии plansplaining мы продолжим обсуждение обработки курсоров. Я рекомендую вам сначала прочитать предыдущую статью, где я излагаю основы.

Тестовый запрос


В этой серии я буду придерживаться использования одного и того же тестового запроса, который выводит данные по продажам и товарам, которые были проданы в количестве более 10 единиц в пределах заданного диапазона заказов.
Продолжить чтение "Статические курсоры"

Новости за 2025-04-26 - 2025-05-02

§ Учебник (sql-tutorial.ru) находится на реконструкции. Планируем в течение мая выложить новую версию. Извиняемся за доставленные неудобства.


§ Лидеры недели

	Участник		w_sel	all_sel	select	dml	Всего	Рейтинг
Иванов К.А. (Монсун) 11 25 18 0 18 2935
Паласухин Д.С. (Nitrinos) 6 34 11 0 11 1419
Ghitinomagomedov (gmansur88) 5 28 7 0 7 2644
Bulyakarov S. (Sa1avat) 1 102 4 0 4 237

Продолжить чтение "Новости за 2025-04-26 - 2025-05-02"

Оптимизация MySQL: удаление данных

Пересказ статьи Lukas Vileikis. Optimizing MySQL: Deleting Data


Удаление данных - основы


Спросите любого администратора баз данных, как удалить данные, и вы услышите об одном или двух следующих методов:

  1. Выполните запрос DELETE - запросы DELETE довольно самоочевидны, и они удаляют строки в таблицах базы данных.

  2. Выполните запрос TRUNCATE - TRUNCATE - это брат DELETE с тем главным отличием, что DELETE удаляет подмножество строк, а TRUNCATE удаляет все строки таблицы. TRUNCATE имеет еще одно отличие - он значительно быстрей, чем DELETE при удалении всех строк таблицы, поскольку он имеет меньше накладных расходов. Но давайте начнем с начала.


Для начала рассмотрим обычный запрос DELETE, который в MySQL выглядит следующим образом:

DELETE FROM имя_таблицы WHERE [логическое_выражение]

По частям:
Продолжить чтение "Оптимизация MySQL: удаление данных"

Примеры команды SQL Bulk Insert

Пересказ статьи Rick Dobson. SQL Bulk Insert Command Examples


Оператор BULK INSERT в T-SQL специально разработан для переноса содержимого больших файлов в таблицы SQL Server. Однако операторы bulk insert могут использоваться как для больших файлов, так и для малых и/или множества файлов среднего размера. Если вы предпочитаете программировать на T-SQL или считаете, что SSIS - это слишком тяжело для некоторых из ваших проектов по импорту файлов, операторы bulk insert могут предоставить нужный уровень поддержки и дать выигрыш в производительности.

Здесь представлены еще три практических примера использования bulk insert. В конце статьи есть ссылка на скачивание тестовых данных для каждого примера случая использования и дополнительные наборы данных для практики с ними.
Продолжить чтение "Примеры команды SQL Bulk Insert"
Категории: T-SQL

Новости за 2025-04-19 - 2025-04-25

§ Изменения среди лидеров рейтинга

Рейтинг	Участник (решенные задачи)
30 gennadi_s (165)

§ Лидеры недели

	Участник		w_sel	all_sel	select	dml	Всего	Рейтинг
Паласухин Д.С. (Nitrinos) 12 28 17 0 17 1580
Иванов К.А. (Монсун) 8 14 10 0 10 5123
Щербаков (AdamSmith) 4 4 5 0 5 7101
Исупов И.М. (isupov_ilya) 3 3 5 0 5 7586
Продолжить чтение "Новости за 2025-04-19 - 2025-04-25"

Мастерство работы с индексами в SQL Server: выбор правильного порядка столбцов

Пересказ статьи Eitan Blumin. SQL Server Index Mastery: Choosing the Right Column Order


Введение


Оптимизация производительности SQL Server - непростая тема, и проектирование индексов играет в ней жизненно важную роль, способствуя эффективности выполнения запросов к базе данных.

Одним из ключевых аспектов, которые часто влияют на производительность, является порядок столбцов в индексе.

В этом руководстве я буду использовать мой реальный опыт работы консультантом для исследования мыслительного процесса, стоящего за выбором лучшей последовательности столбцов в индексе, логики принятия решений и предложения некоторых практических решений для достижения оптимальной производительности базы данных. Продолжить чтение "Мастерство работы с индексами в SQL Server: выбор правильного порядка столбцов"

Возможности SQL*Plus в Oracle Database 23ai

Пересказ статьи Christopher Jones. Powering on with SQL*Plus for Oracle Database 23ai


При фантастических заявлениях относительно возможностей Oracle Database 23ai, которые уже в целом доступны, я захотел поделиться некоторыми улучшениями в SQL*Plus 23ai.

Традиционный инструмент командной строки в Oracle SQL*Plus остается привычным для многих пользователей баз данных Oracle. Он позволяет выполнять ad-hoc операторы SQL к базе данных Oracle или создавать скрипты операторов для выполнения. Инструмент включается во все установки ПО базы данных и легко устанавливается на других машинах с помощью небольших свободно распространяемых пакетов ZIP (или RPM) Oracle Instant Client. Никаких переходов по ссылкам, никакого длительного времени выполнения. Вы просто распаковываете архив, устанавливаете PATH или LD_LIBRARY_PATH и начинаете его использовать. (Инструкции по установке на Linux находятся здесь.)

Продолжить чтение "Возможности SQL*Plus в Oracle Database 23ai"