SQL-Ex

@sqlexercises


Канал посвящён событиям на сайте "Упражнения SQL"
The channel is dedicated to the events on the site "SQL Exercises"
www.sql-ex.ru

SQL-Ex

23 Oct, 17:19


Polars в Python
https://sql-ex.ru/blogs/?/Polars_v_Python.html

Пересказ статьи Pawan Kumar Ganjhu. Polars In Python (https://pawankg.medium.com/polars-in-python-9182be5f4f9f)

Polars в Python - это быстрая библиотека фреймов данных, которая подобна Pandas, но разработана с целью обеспечения лучшей производительности для больших наборов данных. Она построен на основе Apache Arrow и Rust, что делает ее эффективной для аналитической рабочей нагрузки. Polars особенно полезна для обработки больших наборов данных и эффективного выполнения операций типа фильтрации, агрегации и преобразований.

Вот краткий обзор использования Polars в Python:

Продолжить чтение "Polars в Python" (https://sql-ex.ru/blogs/?/Polars_v_Python.html#extended)

SQL-Ex

19 Oct, 09:16


Вышел PostgreSQL 17
https://sql-ex.ru/blogs/?/Vyshel_PostgreSQL_17.html

Пересказ статьи Anton Okolelov. PostgreSQL 17 Released (https://medium.com/@okoanton/postgresql-17-released-befcdaa169d3)

Производительность

Значительно улучшено управление памятью. Вакуумация теперь потребляет в 20 раз меньше памяти, ускоряя свою операцию и снижая нагрузку на систему.

Операции записи при высокой конкурентной нагрузке стали вдвое быстрей, благодаря оптимизированной обработке WAL.

Улучшенная производительность запросов, использующих условия IN в индексах B-Tree. Добавлена поддержка для инструкций SIMD (включая AVX-512) для ускорения вычислений.

Оптимизирована производительность COPY для экспорта больших объемов данных.

Продолжить чтение "Вышел PostgreSQL 17" (https://sql-ex.ru/blogs/?/Vyshel_PostgreSQL_17.html#extended)

SQL-Ex

18 Oct, 18:00


Новости за 2024-10-12 - 2024-10-18
https://sql-ex.ru/blogs/?/Novosti_za_2024-10-12_-_2024-10-18.html

§ Лидеры недели Участник w_sel all_sel select dml Всего Рейтинг
Протасов Д.Е. (preblud) 13 31 19 0 19 2129
Чувствин М. (chuvstvinmaxim) 7 79 16 0 16 519
Назаренко И.Ю. (ki.mono) 8 24 13 0 13 2832
Руднев В.В. (pazartesi) 6 53 12 0 12 1024
Голинский М.О. (motcan2) 6 24 10 0 10 2007
Москвин П. (Respect) 6 24 10 0 10 2831
Степаненко К.Ю. (St.Constanti 4 57 7 0 7 912
Доронин С.Р. (stepafix1) 5 5 7 0 7 6743
Давыдов (mdavydov) 5 5 6 19 25 4235
Ц (ArtTR) 4 4 5 2 7 6742
Боярский В.А. (ChronoMorzh) (https://sql-ex.ru/users_page.php?uid=493998) 2 87 5 0 5 304
Metalnikov (kirillmet) (https://sql-ex.ru/users_page.php?uid=796743) 3 79 5 0 5 417
Кочеров Е.С. (ssense) 4 31 5 0 5 1497
Palkina (PalkinaSA) 4 4 5 0 5 7466
Богач В.Н. (Uladzimir Bahach) 4 4 5 0 5 7710
Smith (tibacityblues) 3 15 4 0 4 2132
Zzz (zzzuhra) 3 4 4 0 4 8013

Продолжить чтение "Новости за 2024-10-12 - 2024-10-18" (https://sql-ex.ru/blogs/?/Novosti_za_2024-10-12_-_2024-10-18.html#extended)

SQL-Ex

16 Oct, 08:18


Использование улучшений SQL/JSON для современных рабочих нагрузок в PostgreSQL 16
https://sql-ex.ru/blogs/?/Ispolzovanie_uluchshenij_SQLJSON_dlJa_sovremennyh_rabochih_nagruzok_v_PostgreSQL_16.html

Пересказ статьи Vibhor Kumar. Exploiting SQLJSON Enhancements for Modern Workloads in PostgreSQL 16 (https://vibhorkumar.wordpress.com/2024/02/12/exploiting-sql-json-enhancements-for-modern-workloads-in-postgresql-16/)

Последняя итерация PostgreSQL, версия 16, принесла ряд улучшений, которые поддерживают возможности работы с данными JSON. Эти улучшения не только более тесно сближают PostgreSQL со стандартом SQL/JSON, но также предлагают существенную оптимизацию, которая упрощает и улучшает работу с данными JSON. Эта эволюция свидетельствует о стремлении PostgreSQL удовлетворять потребности современных работающих с данными приложений, которые используют полуструктурированные данные для множества вариантов использования.

В этой статье мы вникнем в улучшения SQL/JSON, внесенные в PostgreSQL 16, проиллюстрируем их применение примерами кода и рассмотрим реальные сценарии, для которых эти улучшения могут стать особенно полезными.

Продолжить чтение "Использование улучшений SQL/JSON для современных рабочих нагрузок в PostgreSQL 16" (https://sql-ex.ru/blogs/?/Ispolzovanie_uluchshenij_SQLJSON_dlJa_sovremennyh_rabochih_nagruzok_v_PostgreSQL_16.html#extended)

SQL-Ex

12 Oct, 07:27


PostgreSQL. Как выявить запросы, которые максимально используют временные файлы?
https://sql-ex.ru/blogs/?/PostgreSQL._Kak_vyJavit_zaprosy,_kotorye_maksimalno_ispolzujut_vremennye_fajly.html

Пересказ статьи Dmitry Romanoff. Postgres. How to check the top queries that use temporary files? (https://blog.devgenius.io/postgres-how-to-check-the-top-queries-that-use-temporary-files-064d25797e61)

Временные файлы в базе данных PostgreSQL могут стать проблемой по нескольким причинам:

Влияние на производительность.
Использование пространства на диске.
Может выделяться все больше и больше памяти.
Проблемы параллелизма.
Сложность в мониторинге и обслуживании.

Что следует делать, чтобы избежать временных файлов в базе данных PostgreSQL?

Продолжить чтение "PostgreSQL. Как выявить запросы, которые максимально используют временные файлы?" (https://sql-ex.ru/blogs/?/PostgreSQL._Kak_vyJavit_zaprosy,_kotorye_maksimalno_ispolzujut_vremennye_fajly.html#extended)

SQL-Ex

11 Oct, 22:07


Новости за 2024-10-05 - 2024-10-11
https://sql-ex.ru/blogs/?/Novosti_za_2024-10-05_-_2024-10-11.html

§ Популярные темы недели на форуме Топик Сообщений Просмотров
69 (SELECT) (https://sql-ex.ru/forum/forum.php?F=1&N=69) 2 6
56 (Learn) (https://sql-ex.ru/forum/Lforum.php?F=3&N=56) 2 8
§ Авторы недели на форуме Автор Сообщений
selber (https://sql-ex.ru/users_page.php?uid=128116) 3
chuvstvinmaxim 2
yarosurafu 2
§ Изменения среди лидеров рейтинга Рейтинг Участник (решенные задачи)
54 gennadi_s (https://sql-ex.ru/users_page.php?uid=791796) (149)
70 born2tilt (https://sql-ex.ru/users_page.php?uid=508947) (166, 195)


Продолжить чтение "Новости за 2024-10-05 - 2024-10-11" (https://sql-ex.ru/blogs/?/Novosti_za_2024-10-05_-_2024-10-11.html#extended)

SQL-Ex

09 Oct, 13:24


Секционирование таблицы по диапазону в базе данных PostgreSQL
https://sql-ex.ru/blogs/?/Sekcionirovanie_tablicy_po_diapazonu_v_baze_dannyh_PostgreSQL.html

Пересказ статьи Dmitry Romanoff. Partitioning a table by range in the PostgreSQL database (https://medium.com/@dmitry.romanoff/partitioning-a-table-by-range-in-the-postgresql-database-423adb0319b7)

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

Здесь я на практике продемонстрирую, как работает секционирование.

Продолжить чтение "Секционирование таблицы по диапазону в базе данных PostgreSQL" (https://sql-ex.ru/blogs/?/Sekcionirovanie_tablicy_po_diapazonu_v_baze_dannyh_PostgreSQL.html#extended)

SQL-Ex

05 Oct, 10:42


Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1
https://sql-ex.ru/blogs/?/Optimizacionnye_trjuki_v_PostgreSQL._Kak_bystro_zagruzit_dannye_chast_1.html

Пересказ статьи Mitchell Warr. PostgreSQL Optimization Tricks: How to Load Data Fast Part 1 (https://blog.stackademic.com/postgresql-optimization-tricks-how-to-load-data-fast-part-1-6cba8029faf7)

Итак, у вас есть несколько сотен миллионов строк данных в таблице, и вы просто не получаете той скорости, что раньше. Она работает медленнее, чем когда была молодой и энергичной базой данных, и вы можете поклясться, что слышите, как она скрипит, когда вы ускоряете распределение памяти.
Вы открываете объяснение плана запроса и заглядываете под капот в чем-то типа https://explain.dalibo.com (https://explain.dalibo.com/). Но что вы фактически можете сделать?

Продолжить чтение "Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1" (https://sql-ex.ru/blogs/?/Optimizacionnye_trjuki_v_PostgreSQL._Kak_bystro_zagruzit_dannye_chast_1.html#extended)

SQL-Ex

04 Oct, 19:18


Новости за 2024-09-28 - 2024-10-04
https://sql-ex.ru/blogs/?/Novosti_za_2024-09-28_-_2024-10-04.html

§ Изменения среди лидеров рейтинга
Рейтинг Участник (решенные задачи)
55 gennadi_s (https://sql-ex.ru/users_page.php?uid=791796) (147)
73 born2tilt (https://sql-ex.ru/users_page.php?uid=508947) (170, 203, 204, 235, 238, 260)

§ Лидеры недели
Участник w_sel all_sel select dml Всего Рейтинг
Чувствин М. (chuvstvinmaxim) 20 54 38 0 38 1287
Metalnikov (kirillmet) 14 58 24 0 24 880
Москвин П. (Respect) 14 17 19 4 23 4070
Руднев В.В. (pazartesi) 8 46 18 2 20 1179
Любомудров Р.Г. (born2tilt) (https://sql-ex.ru/users_page.php?uid=508947) 9 173 14 0 14 73
Степаненко К.Ю. (St.Constanti 7 48 13 0 13 1044
Сергеева О.Б. (Valkiri9) 8 17 10 0 10 4514
Протасов Д.Е. (preblud) 6 6 8 5 13 5563
Кочеров Е.С. (ssense) 6 22 8 0 8 1801
Бабаян (Eliorika) 4 4 5 2 7 6777
Голинский М.О. (motcan2) 4 12 5 0 5 3358
Назаренко И.Ю. (ki.mono) 4 7 5 0 5 5574
Eremkin A. (Artyom Eryomkin) 4 4 5 0 5 7455
Саркисьян Г. (gennadi_s) (https://sql-ex.ru/users_page.php?uid=791796) 1 158 4 0 4 55
Курицын В.Н. (ValNick) (https://sql-ex.ru/users_page.php?uid=599825) 1 151 4 0 4 137
Smith (tibacityblues) 3 11 4 0 4 2480
Мельников Е. (AckermanL) 4 14 4 0 4 4925
Иванов П.И. (sqlSolver123) 3 4 4 0 4 8135

Продолжить чтение "Новости за 2024-09-28 - 2024-10-04" (https://sql-ex.ru/blogs/?/Novosti_za_2024-09-28_-_2024-10-04.html#extended)

SQL-Ex

02 Oct, 09:24


Более эффективный подсчет
https://sql-ex.ru/blogs/?/Bolee_jeffektivnyj_podschet.html

Пересказ статьи Aaron Bertrand. Counting more efficiently (https://www.red-gate.com/simple-talk/databases/sql-server/t-sql-programming-sql-server/counting-more-efficiently/)

Почти десятилетие назад я написал статью с названием «Вредные привычки: трудный подсчет строк» (https://sql-ex.ru/blogs/?/Bolee_jeffektivnyj_podschet.html). В той статье я говорил о том, как мы можем использовать метаданные для мгновенного получения числа строк в таблице. Обычно люди делают следующее, что приводит к чтению всей таблицы или индекса:

DECLARE @c int = (SELECT COUNT(*) FROM dbo.TableName);

Чтобы в значительной степени избежать ограничений на размер данных, вместо этого мы можем использовать sys.partitions.

Продолжить чтение "Более эффективный подсчет" (https://sql-ex.ru/blogs/?/Bolee_jeffektivnyj_podschet.html#extended)

SQL-Ex

28 Sep, 22:50


Планирование планов. Часть 26 - окна с диапазонной рамкой
https://sql-ex.ru/blogs/?/Planirovanie_planov._Chast_26_-_okna_s_diapazonnoj_ramkoj.html

Пересказ статьи Hugo Kornelis. Plansplaining part 26 – Windows with a ranged frame (https://sqlserverfast.com/blog/hugo/2023/12/plansplaining-part-26-windows-with-a-ranged-frame/)

Это двадцать шестая часть данной серии (plansplaining) (https://sqlserverfast.com/blog/hugo/tag/plansplaining/). И уже четвертый эпизод об оконных функциях. Первая из этих статей (https://sqlserverfast.com/blog/hugo/2023/11/plansplaining-part-23-t-sql-tuesday-168-window-functions/) была посвящена базовым оконным функциям; вторая (https://sqlserverfast.com/blog/hugo/2023/11/plansplaining-part-24-windows-on-the-fast-track/) была посвящена быстрой оптимизации накопительных агрегатов, а в третьей публикации (https://sqlserverfast.com/blog/hugo/2023/12/plansplaining-part-25-windows-without-upper-bound/) объяснялось, как оптимизатор работает при отсутствии поддержки плана выполнения для UNBOUNDED FOLLOWING.

Продолжить чтение "Планирование планов. Часть 26 - окна с диапазонной рамкой" (https://sql-ex.ru/blogs/?/Planirovanie_planov._Chast_26_-_okna_s_diapazonnoj_ramkoj.html#extended)

SQL-Ex

27 Sep, 17:48


Новости за 2024-09-21 - 2024-09-27
https://sql-ex.ru/blogs/?/Novosti_za_2024-09-21_-_2024-09-27.html

§ В ответ на замечание chuvstvinmaxim усилена проверка задачи 12 (SELECT, рейтинговый этап).

§ Лидеры недели Участник w_sel all_sel select dml Всего Рейтинг
Чувствин М. (chuvstvinmaxim) 22 34 33 0 33 2085
Odilbekov J. (xerxessql) 17 17 22 2 24 4348
Любомудров Р.Г. (born2tilt) (https://sql-ex.ru/users_page.php?uid=508947) 11 164 20 0 20 91
Metalnikov (kirillmet) 9 44 19 0 19 1140
Степаненко К.Ю. (St.Constanti 7 41 17 0 17 1191
Gavrilov G.A. (potasovka) 6 63 13 28 41 728
Товстык Д.О. (bdlck) 6 12 8 0 8 5223
Сергеева О.Б. (Valkiri9) 5 9 8 0 8 5593
Руднев В.В. (pazartesi) 3 38 7 0 7 1415
Кочеров Е.С. (ssense) 6 16 7 0 7 2084
Саркисьян Г. (gennadi_s) (https://sql-ex.ru/users_page.php?uid=791796) 2 157 6 0 6 60
Фролов К.А. (Murderface_) (https://sql-ex.ru/users_page.php?uid=556296) 1 154 4 0 4 132
Назаренко (Igagoshka) 3 3 4 0 4 9028
Продолжить чтение "Новости за 2024-09-21 - 2024-09-27" (https://sql-ex.ru/blogs/?/Novosti_za_2024-09-21_-_2024-09-27.html#extended)

SQL-Ex

25 Sep, 06:26


Искусство хранимой процедуры SQL Server: типы данных
https://sql-ex.ru/blogs/?/Iskusstvo_hranimoj_procedury_SQL_Server_tipy_dannyh.html

Пересказ статьи Erik Darling. The Art Of The SQL Server Stored Procedure: Data Types (https://erikdarling.com/the-art-of-the-sql-server-stored-procedure-data-types/)

Смесь и соответствие

Есть лишь несколько типов данных, которые нервируют меня, когда я их вижу:
- Строки MAX или близкие к верхнему пределу по байтам (за исключением динамического SQL)
- XML
- sql_variant

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

Продолжить чтение "Искусство хранимой процедуры SQL Server: типы данных" (https://sql-ex.ru/blogs/?/Iskusstvo_hranimoj_procedury_SQL_Server_tipy_dannyh.html#extended)

SQL-Ex

21 Sep, 08:20


Программирование на Python в Microsoft Excel
https://sql-ex.ru/blogs/?/Programmirovanie_na_Python_v_Microsoft_Excel.html

Пересказ статьи Fareed Khan. Python Programming in Microsoft Excel (https://medium.com/@fareedkhandev/python-programming-in-microsoft-excel-2c88df7633df)

В новаторском сотрудничестве Anaconda и Microsoft представили инновацию, меняющую правила игры: Python в Excel. Эта революционная интеграция изменила как для пользователей Excel, так и для практикующих Python, подход к анализу данных и привнесла новый уровень доступа к современной аналитике. Это партнерство сочетает мощь Python со знакомым интерфейсом Excel, трансформируя аналитику данных в более интегрированный, мощный и доступный способ получения результатов. В этом блоге мы узнаем, что дает Python в Excel, его преимущества и то, как вы можете начать путешествие по анализу данных.

Продолжить чтение "Программирование на Python в Microsoft Excel" (https://sql-ex.ru/blogs/?/Programmirovanie_na_Python_v_Microsoft_Excel.html#extended)

SQL-Ex

20 Sep, 17:58


Новости за 2024-09-14 - 2024-09-20
https://sql-ex.ru/blogs/?/Novosti_za_2024-09-14_-_2024-09-20.html

§ Лидеры недели Участник w_sel all_sel select dml Всего Рейтинг
Metalnikov (kirillmet) 22 35 36 0 36 1364
Чувствин М. (chuvstvinmaxim) 12 12 16 0 16 5217
Gavrilov G.A. (potasovka) 9 57 14 0 14 1219
Любомудров Р.Г. (born2tilt) (https://sql-ex.ru/users_page.php?uid=508947) 5 153 13 0 13 131
Кочеров Е.С. (ssense) 9 10 13 0 13 2471
Руднев В.В. (pazartesi) 8 35 11 6 17 1520
Zubarev A. (agressivekid) 4 4 5 13 18 5037
Култынина М. (Margarita_dlana) 4 4 5 0 5 7802
Степаненко К.Ю. (St.Constanti 2 34 4 0 4 1392


Продолжить чтение "Новости за 2024-09-14 - 2024-09-20" (https://sql-ex.ru/blogs/?/Novosti_za_2024-09-14_-_2024-09-20.html#extended)

SQL-Ex

18 Sep, 06:11


Кортежи или списки в Python - что эффективней?
https://sql-ex.ru/blogs/?/KorteZhi_ili_spiski_v_Python_-_chto_jeffektivnej.html

Пересказ статьи Rinu Gour. Python Tuples vs Lists - Which Is More Efficient? (https://pythonflood.com/python-tuples-vs-lists-which-is-more-efficient-36b6374c5b3c)

Python предлагает многообразные структуры хранения и манипуляции данными. Двумя наиболее часто используемыми структурами данных в Python являются списки и кортежи.

Здесь мы обсудим различия между списками и кортежами, их характеристики, варианты использования, методы и операции. Продолжить чтение "Кортежи или списки в Python - что эффективней?" (https://sql-ex.ru/blogs/?/KorteZhi_ili_spiski_v_Python_-_chto_jeffektivnej.html#extended)

SQL-Ex

14 Sep, 12:37


Конструирование запросов SQL с помощью Python
https://sql-ex.ru/blogs/?/Konstruirovanie_zaprosov_SQL_s_pomowju_Python.html

Пересказ статьи Rajan Sahu. Constructing SQL Queries With Python (https://python.plainenglish.io/constructing-sql-queries-with-python-bf276e8dd9df)

Способность быстро и легко писать запросы SQL является решающей при взаимодействии с базами данных в Python-разработках. Создание сложных и понятных запросов SQL выполняется проще с помощью Pypika, надежного и удобного для пользователя пакета Python. В этой статье блога мы рассмотрим основные возможности Pypika, проверим несколько типичных случаев использования и оценим его функции на конкретных примерах.

Продолжить чтение "Конструирование запросов SQL с помощью Python" (https://sql-ex.ru/blogs/?/Konstruirovanie_zaprosov_SQL_s_pomowju_Python.html#extended)

SQL-Ex

13 Sep, 17:27


Новости за 2024-09-07 - 2024-09-13
https://sql-ex.ru/blogs/?/Novosti_za_2024-09-07_-_2024-09-13.html

§ В ответ на сообщение alexey321 усилена проверка задачи 70 (SELECT, обуч. этап).

§ Пересчитал сложность задач обучающего этапа. Возможны изменения рейтинговых позиций.

§ Популярные темы недели на форуме Топик Сообщений Просмотров
159 (Learn) (https://sql-ex.ru/forum/Lforum.php?F=3&N=159) 2 5
32 (Learn) (https://sql-ex.ru/forum/Lforum.php?F=3&N=32) 2 12
Продолжить чтение "Новости за 2024-09-07 - 2024-09-13" (https://sql-ex.ru/blogs/?/Novosti_za_2024-09-07_-_2024-09-13.html#extended)

SQL-Ex

11 Sep, 04:59


Код базы данных на основе множеств или на основе строк
https://sql-ex.ru/blogs/?/Kod_bazy_dannyh_na_osnove_mnoZhestv_ili_na_osnove_strok.html

Пересказ статьи Kevin. Set-Based vs Row-Based Database Code (https://dallasdbas.com/set-based-vs-row-based-database-code/)

В SQL Server термины "на основе множеств" и "на основе строк" относятся к различным подходам или стилям написания кода SQL при манипуляции с данными. Эти стили оказывают влияние на производительность, читабельность и способ, который используется при обработке запросов. Давайте рассмотрим различия между кодом на основе множеств и кодом на основе строк:

Продолжить чтение "Код базы данных на основе множеств или на основе строк" (https://sql-ex.ru/blogs/?/Kod_bazy_dannyh_na_osnove_mnoZhestv_ili_na_osnove_strok.html#extended)

SQL-Ex

07 Sep, 14:19


Обработка запроса в PostgreSQL
https://sql-ex.ru/blogs/?/Obrabotka_zaprosa_v_PostgreSQL.html

Пересказ статьи AGEDB. Query Processing in PostgreSQL (https://medium.com/agedb/query-processing-in-postgresql-1309fa93f69f)

Введение

Как энтузиаст и разработчик ПО я очарован внутренней работой PostgreSQL. Способ, с помощью которого обрабатываются все клиентские запросы в едином серверном процессе, и его сложные подсистемы для обработки запросов действительно изумляют меня. Я захотел выяснить, как работают запросы в PostgreSQL. Я провел некоторое исследование и нашел то, что происходит внутри кода PostgreSQL. Этот краткий обзор объясняет процесс выполнения запроса и то, как PostgreSQL делает это, чтобы гарантировать вам лучшую производительность его выполнения. Конечно, производительность в значительной степени зависит от того, как спроектирована база данных, поэтому обратитесь к советам по основам моделирования базы данных от AGEDB (https://agedb.io/what-is-a-relational-database-the-essentials-of-relational-data-modeling.jsp).

Продолжить чтение "Обработка запроса в PostgreSQL" (https://sql-ex.ru/blogs/?/Obrabotka_zaprosa_v_PostgreSQL.html#extended)