Skip to content

Использование 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"

Резервирование в MySQL: физические и логические резервные копии

Пересказ статьи Lukas Vileikis. Backing Up MySQL Part 6: Physical vs. Logical Backups


Каждый, кто когда-либо резервировал данные на любой РСУБД, в курсе о бэкапах. Бэкапы - центральная часть целостности данных, особенно в наши дни, когда повреждения данных происходят со всех сторон. Надлежащим образом проверяемые бэкапы критичны для любой компании: как только что-то случается с вашими данными, они помогают быстро все наладить. Возможно, вы слышали о различиях между резервными копиями в системах управления базами данных - сами бэкапы также подразделяются на несколько уникальных форм. Мы говорим о физических и логических формах, которые имеют свои достоинства и недостатки. Давайте рассмотрим различия между этими двумя. Здесь мы адресуемся к MySQL, однако некоторые советы не ограничиваются исключительно этой СУБД. Continue reading "Резервирование в MySQL: физические и логические резервные копии"

Работа с данными временных рядов в 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"

Введение в оператор DELETE в MySQL

Пересказ статьи Robert Sheldon. Introducing the MySQL DELETE statement


Оператор DELETE позволяет удалить одну или более строк из таблицы, включая временные таблицы. В целом оператор DELETE является довольно простым, но он не менее необходим в вашем арсенале инструментов DML, наряду с другими операторами DML - SELECT, INSERT, UPDATE . Continue reading "Введение в оператор DELETE в MySQL"

Введение в оператор UPDATE в MySQL

Пересказ статьи Robert Sheldon. Introducing the MySQL UPDATE statement


Оператор UPDATE позволяет изменять значения в таблицах базы данных, включая временные таблицы. С помощью единственного оператора вы можете обновить одну или более строк, один или более столбцов, или любую их комбинацию. Вы можете даже обновить несколько таблиц. Проработав эту статью вы узнаете, что оператор UPDATE прост и интуитивно понятен, если усвоить основы его работы.
Continue reading "Введение в оператор UPDATE в MySQL"

Переосмысление явных транзакций 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?"

Хранимые процедуры SQL: входные и выходные параметры, типы, обработка ошибок и кое-что еще

Пересказ статьи Aubrey Love. SQL Stored Procedure Input and Output Parameters, Types, Error Handling, Security and more


Если вы слышали о хранимых процедурах в SQL Server, но точно не знаете, что это такое и как это использовать наилучшим образом, то эта статья даст вам необходимую информацию и позволит начать работать с хранимыми процедурами.

Здесь вы узнаете, что из себя представляет хранимая процедура, как ее создать и применить. Мы поговорим о параметрах хранимой процедуры, входных и выходных, и вкратце обсудим обработку ошибок и безопасность для хранимых процедур. Continue reading "Хранимые процедуры SQL: входные и выходные параметры, типы, обработка ошибок и кое-что еще"

Запрос к единственной таблице может использовать несколько индексов

Пересказ статьи Daniel Hutmacher. Querying a single table can use multiple indexes


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