Skip to content

5 типов резервных копий в SQL Server

Пересказ статьи Lee Markum. 5 Types of SQL Server Backups


Одной из основополагающих обязанностей администратора баз данных является обеспечение доступности резервных копий (бэкапов).

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

Зачем делать бэкапы?


Continue reading "5 типов резервных копий в SQL Server"

Использование триггеров для замены скалярных UDF на вычисляемых столбцах

Пересказ статьи Brent Ozar. Using Triggers to Replace Scalar UDFs on Computed Columns


Ваша база данных усеяна вычисляемыми столбцами, чье определение включает скалярную пользовательскую функцию. Даже вплоть до SQL Server 2019, который быстрей обрабатывает скалярную функцию, любая таблица, которая включает скалярную функцию приводит к однопоточному доступу к таблице. В этом случае, триггер может реально стать отличной заменой. Continue reading "Использование триггеров для замены скалярных UDF на вычисляемых столбцах"

Малоизвестные факты о явных транзакциях

Пересказ статьи Brahmanand Shukla. Lesser-known facts of Explicit Transactions


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

Когда речь заходит о транзакциях, на ум сразу приходят слова BEGIN TRANSACTION, COMMIT TRANSACTION и ROLLBACK TRANSACTION. Вам они должны быть знакомы. В противном случае, обратитесь к документации.
Continue reading "Малоизвестные факты о явных транзакциях"

Еще одна причина, по которой я люблю динамический SQL: параметры OUTPUT могут быть входными параметрами

Пересказ статьи Erik Darling. Another Reason Why I Love Dynamic SQL: OUTPUT Parameters Can Be Input Parameters


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

Требовалось установить ряд переменных в значения столбцов таблицы, но загвоздка заключалась в том, что некоторые значения, которые требовалось установить, также необходимо было передать в качестве аргументов поиска.
Continue reading "Еще одна причина, по которой я люблю динамический SQL: параметры OUTPUT могут быть входными параметрами"

Получение плана выполнения запроса в PostgreSQL

Пересказ статьи sabyda. Getting a Query Execution Plan in PostgreSQL


Введение


Часто необходимо проверить производительность только что написанного запроса в PostgreSQL в поисках способа улучшить его производительность. Для этого вам нужно получить отчет о выполнении запроса, который называется планом выполнения. План выполнения запроса дает суммарную информацию о выполнении запроса с подробным отчетом о времени, потраченном на каждом шаге, и затратах на его выполнение.
Continue reading "Получение плана выполнения запроса в PostgreSQL"

Как решить, нужно ли вам секционировать таблицы

Пересказ статьи Kendra Little. How To Decide if You Should Use Table Partitioning


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

Установка частоты выборки для автоматического обновления статистики

Пересказ статьи Matthew McGiffen. Setting the Sample Rate for Automatic Statistics updates


Статистика жизненно важна серверу БД, чтобы выполнять ваши запросы наиболее производительным способом. Глубокое понимание работы статистики действительно помогает при настройке производительности. Continue reading "Установка частоты выборки для автоматического обновления статистики"

Отключение некластеризованных индексов для развлечения и пользы

Пересказ статьи Andy Galbraith. Disabling Non-Clustered Indexes For Fun and Profit


Одним из часто цитируемых практических советов в ETL является отключение некластеризованных индексов при загрузке данных. Общепринятое мнение заключается в том, что вы отключаете некластеризованные индексы, выполняете загрузку, а затем включаете некластеризованные индексы, что функционально перестраивает их с вновь загруженными данными (шаг, который должен выполняться после загрузки любого объема, даже если вы НЕ отключали ваши индексы - перестраивайте эти ставшие фрагментированными индексы!) Continue reading "Отключение некластеризованных индексов для развлечения и пользы"

Методы авторизации SQL Server, логины и пользователи базы данных

Пересказ статьи Greg Larsen. SQL Server authentication methods, logins, and database users


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