Skip to content

Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1

Пересказ статьи Mitchell Warr. PostgreSQL Optimization Tricks: How to Load Data Fast Part 1


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

Вы открываете объяснение плана запроса и заглядываете под капот в чем-то типа https://explain.dalibo.com. Но что вы фактически можете сделать?

Continue reading "Оптимизационные трюки в PostgreSQL. Как быстро загрузить данные: часть 1"

Новости за 2024-09-28 - 2024-10-04

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

Рейтинг	Участник (решенные задачи)
55 gennadi_s (147)
73 born2tilt (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) 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) 1 158 4 0 4 55
Курицын В.Н. (ValNick) 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
Continue reading "Новости за 2024-09-28 - 2024-10-04"

Более эффективный подсчет

Пересказ статьи Aaron Bertrand. Counting more efficiently


Почти десятилетие назад я написал статью с названием «Вредные привычки: трудный подсчет строк». В той статье я говорил о том, как мы можем использовать метаданные для мгновенного получения числа строк в таблице. Обычно люди делают следующее, что приводит к чтению всей таблицы или индекса:

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

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

Планирование планов. Часть 26 - окна с диапазонной рамкой

Пересказ статьи Hugo Kornelis. Plansplaining part 26 – Windows with a ranged frame


Это двадцать шестая часть данной серии (plansplaining). И уже четвертый эпизод об оконных функциях. Первая из этих статей была посвящена базовым оконным функциям; вторая была посвящена быстрой оптимизации накопительных агрегатов, а в третьей публикации объяснялось, как оптимизатор работает при отсутствии поддержки плана выполнения для UNBOUNDED FOLLOWING.
Continue reading "Планирование планов. Часть 26 - окна с диапазонной рамкой"

Новости за 2024-09-21 - 2024-09-27

§ В ответ на замечание 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) 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) 2 157 6 0 6 60
Фролов К.А. (Murderface_) 1 154 4 0 4 132
Назаренко (Igagoshka) 3 3 4 0 4 9028
Continue reading "Новости за 2024-09-21 - 2024-09-27"

Искусство хранимой процедуры SQL Server: типы данных

Пересказ статьи Erik Darling. The Art Of The SQL Server Stored Procedure: Data Types


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


Есть лишь несколько типов данных, которые нервируют меня, когда я их вижу:

    Строки MAX или близкие к верхнему пределу по байтам (за исключением динамического SQL)
    XML
    sql_variant

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

Программирование на Python в Microsoft Excel

Пересказ статьи Fareed Khan. Python Programming in Microsoft Excel


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

Новости за 2024-09-14 - 2024-09-20

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

	Участник		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) 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

Continue reading "Новости за 2024-09-14 - 2024-09-20"

Кортежи или списки в Python - что эффективней?

Пересказ статьи Rinu Gour. Python Tuples vs Lists - Which Is More Efficient?


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

Здесь мы обсудим различия между списками и кортежами, их характеристики, варианты использования, методы и операции. Continue reading "Кортежи или списки в Python - что эффективней?"

Конструирование запросов SQL с помощью Python

Пересказ статьи Rajan Sahu. Constructing SQL Queries With Python


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

Новости за 2024-09-07 - 2024-09-13

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


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


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

Топик		Сообщений	Просмотров
159 (Learn) 2 5
32 (Learn) 2 12
Continue reading "Новости за 2024-09-07 - 2024-09-13"

Код базы данных на основе множеств или на основе строк

Пересказ статьи Kevin. Set-Based vs Row-Based Database Code


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

Обработка запроса в PostgreSQL

Пересказ статьи AGEDB. Query Processing in PostgreSQL

Введение


Как энтузиаст и разработчик ПО я очарован внутренней работой PostgreSQL. Способ, с помощью которого обрабатываются все клиентские запросы в едином серверном процессе, и его сложные подсистемы для обработки запросов действительно изумляют меня. Я захотел выяснить, как работают запросы в PostgreSQL. Я провел некоторое исследование и нашел то, что происходит внутри кода PostgreSQL. Этот краткий обзор объясняет процесс выполнения запроса и то, как PostgreSQL делает это, чтобы гарантировать вам лучшую производительность его выполнения. Конечно, производительность в значительной степени зависит от того, как спроектирована база данных, поэтому обратитесь к советам по основам моделирования базы данных от AGEDB.
Continue reading "Обработка запроса в PostgreSQL"

Изучение индексов в PostgreSQL

Пересказ статьи Henrietta Dombrovskaya. Exploring PostgreSQL Indexes


В этом блоге мы продолжим наше изучение индексов в PostgreSQL, которое начали здесь. В той статье мы узнали, что такое индекс и как индексы могут помочь при выполнении запроса. Но здесь мы узнаем намного больше об индексах! В этом блоге мы будем рассматривать индексы B-Tree. Мы выясним, действительно ли (и как) ограничения базы данных связаны с индексами (или нет), как точно работает сканирование битовой карты индекса, и узнаем некоторые дополнительные варианты индексов, доступные в PostgreSQL.



Continue reading "Изучение индексов в PostgreSQL"