Skip to content

Работа с битами двоичного значения в SQL Server

Пересказ статьи Louis Davidson. Dealing with the Bits of a Binary Value in SQL Server


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

Использование sp_prepare и sp_execute для применения подготовленных операторов SQL

Пересказ статьи Eric Blinn. Using sp_prepare and sp_execute to utilize prepared SQL statements


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

Здесь мы узнаем как определить и выполнить подготовленный оператор SQL. Демонстрационный код будет выполняться в SSMS на SQL Server 2019 в учебной базе данных WideWorldImporters, которую можно загрузить с Github.
Continue reading "Использование sp_prepare и sp_execute для применения подготовленных операторов SQL"

Работа с данными временных рядов в SQL Server 2022 и Azure SQL

Пересказ статьи Kendal Van Dyke. Working with time series data in SQL Server 2022 and Azure SQL


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

Некоторые примеры данных временных рядов включают цены акций, телеметрию датчиков оборудования производственных цехов и метрики производительности SQL Server, такие как ЦП, память, ввод/вывод и использование сети.

Данные временных рядов часто используются для сравнения исторических данных, обнаружения аномалий, прогнозного анализа и подготовки отчетов, где время является смысловой осью для просмотра и анализа данных. Continue reading "Работа с данными временных рядов в SQL Server 2022 и Azure SQL"

Учебник по логическим типам SQL

Пересказ статьи Daniel Calbimonte. SQL Boolean Tutorial


Логический (булев) тип данных отсутствует в SQL Server. Другие базы данных, подобные Oracle и MySQL, поддерживают логический тип данных, который принимает значения TRUE и FALSE.

SQL Server использует тип данных Bit, который принимает значения 0, 1 и NULL, которые могут использоваться вместо значений TRUE, FALSE и NULL. Здесь мы рассмотрим несколько примеров на вставку и выборку этих значений.
Continue reading "Учебник по логическим типам SQL"

Переосмысление явных транзакций SQL

Пересказ статьи Jared Westover. Rethinking SQL Explicit Transactions


Недавно разработчик Microsoft SQL Server усомнился в моем давнем совете всегда использовать явные транзакции, по крайней мере, при выполнении операторов обновления, вставки и удаления. Я годами проповедовал, что вы должны использовать их почти для любого оператора, изменяющего строку в целях обеспечения целостности данных. Прежде чем пересмотреть свое решение, я бы высказался за их использование для обновления одной строки в единственной таблице. Он спросил, а должен ли? Тщательно обдумав это, я сказал нет, вы не должны. Этот простой вопрос заставил меня переосмыслить, почему я выступаю за явные транзакции. Continue reading "Переосмысление явных транзакций SQL"

Что такое фрагментация индекса и коэффциент заполнения индекса в SQL Server?

Пересказ статьи Joe Billingham. What are SQL Server Index Fragmentation and Index Fill Factor


Что такое фрагментация индекса и как она происходит?


Важно знать, что данные SQL Server хранятся на страницах данных, каждая из которых имеет размер 8Кб. Имеется два типа фрагментации, оба являются результатом того, что эти страницы используются не так эффективно, как могло бы быть.

Когда вы вставляете или обновляете данные на странице, которая уже заполнена, SQL Server создает новую страницу. Информация из исходной страницы будет разбиваться 50/50, при этом половина данных вместе с новой записью будет добавляться на новую страницу. Таким образом в конце страницы (страниц) появляется пустое пространство. Это пустое пространство, которое называется внутренней фрагментацией, также возникает при удалении данных со страницы. На диаграмме показано, как это происходит: Continue reading "Что такое фрагментация индекса и коэффциент заполнения индекса в SQL Server?"