Skip to content

Решение проблем производительности при использовании UDF в SQL Server

Пересказ статьи Eric Blinn. Performance Problems and Solutions when using User Defined Functions in SQL Server


Может ли определяемая пользователем функция (UDF) являться причиной проблем с производительностью в SQL Server? Как это выяснить? Если это может быть частью проблемы, то что тут можно сделать?

UDF могут быть очень привлекательны для новых разработчиков T-SQL, особенно для тех, кто пришел с опытом в более традиционных процедурных языках программирования. Эти функции позволяют обеспечить более высокую степень повторного использования кода и могут упростить его читабельность. К сожалению, SQL Server использует теоретико-множественную парадигму программирования и зачастую не так хорош при выполнении UDF. Что хуже, многие традиционные методы настройки производительности не точно оценивают влияние UDF на запросы. Здесь мы будем изучать эту проблему и способы ее обхода.
Продолжить чтение "Решение проблем производительности при использовании UDF в SQL Server"

Оптимизация запросов в MySQL: оптимизация чтений

Пересказ статьи Lukas Vileikis. Optimizing Queries in MySQL: Optimizing Reads


Оптимизация операций чтения является одной из наиболее частых проблем, с которой сталкивается любой администратор баз данных. Не важно, какая система управления базами данных используется - MySQL, ее клоны Percona Server или MariaDB, MongoDB, TimescaleDB, SQL Server, или какие-либо другие, запросы на чтение касаются их всех. В первую очередь, можно привести примеры запросов SELECT, но многое также относится к UPDATE и DELETE, поскольку эти операторы тоже должны извлекать строки для работы с ними.

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

Столбцы, допускающие и не допускающие значения NULL, и добавление Not Null без ступора в PostgreSQL

Пересказ статьи rohind. Nullable vs Non-Nullable Columns and Adding Not Null Without Downtime in PostgreSQL


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

Начнем с определений. Термины Nullable и non-nullable для столбцов используются для описания возможности для столбца таблицы базы данных допускать или не допускать значения NULL. NULL означает неизвестные или отсутствующие данные. Это не то же самое, что пустая строка или число нуль. Например, вам требуется вставить адрес электронной почты контакта в таблицу. Если вы не знаете, имеет ли контакт электронную почту, вы можете вставить NULL в столбец электронного адреса. В этом случае NULL означает, что электронный адрес неизвестен. NULL ничему не равен, даже самому себе. Выражение 'NULL == NULL' возвращает 'NULL', поскольку два неизвестных значения не должны быть равными. Для проверки наличия значения 'NULL' вы используете логический оператор 'IS NULL'. Оператор ниже вернет true для значения NULL или false в противном случае.
Продолжить чтение "Столбцы, допускающие и не допускающие значения NULL, и добавление Not Null без ступора в PostgreSQL"