Skip to content

Пять фактов о базе данных Model в SQL Server

Пересказ статьи Sergey Gigoyan. Five facts about the SQL Server Model Database


В этой статье мы исследуем еще одну системную базу данных - model - и обсудим пять важных фактов об этой базе данных SQL Server. Continue reading "Пять фактов о базе данных Model в SQL Server"

Никогда, никогда не начинайте комментарии в T-SQL с двух тире

Пересказ статьи Brent Ozar. Never, Ever, Ever Start T-SQL Comments with Two Dashes


Вы можете написать комментарий в T-SQL двумя способами:

-- начав строку с двух тире или
/* заключив его с двух сторон, как это сделано здесь */

Никогда не используйте двух тире. Никогда.

Continue reading "Никогда, никогда не начинайте комментарии в T-SQL с двух тире"

SET NOCOUNT для SQL Server

Пересказ статьи Thomas LaRock. SET NOCOUNT For SQL Server


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

Альтернативы функциям GREATEST и LEAST в SQL Server

Пересказ статьи Mike Scalise. GREATEST/LEAST Function Alternatives in SQL Server


Запрос к Microsoft, за который наиболее часто голосуют на feedback.azure.com, предлагает добавить MAX/MIN в качестве неагрегатных функций в SQL Server. Другими словами, это функции GREATEST и LEAST, которые мы можем увидеть в MySQL, PostgreSQL и Oracle.
Continue reading "Альтернативы функциям GREATEST и LEAST в SQL Server"

Основы журнала транзакций в SQL Server

Пересказ статьи Kenneth Igiri. Basics of SQL Server Transaction Log



Что такое журнал транзакций?


Требованием реляционных систем баз данных является надежность (durable) транзакций. Эта "D" присутствует в свойствах транзакций ACID. Система должна гарантировать, что при внезапном сбое транзакция может быть повторена. SQL Server выполняет это требование записью всех транзакций в физический файл, который называется файлом журнала транзакций.
Continue reading "Основы журнала транзакций в SQL Server"

Индексы: обнаружение неиспользуемых индексов

Пересказ статьи Dennes Torres. Index Usage: finding indexes not being used


Я уже писал о том, как проверить использование индексов в базе данных. В той статье я писал об изучении планов запросов.

Однако есть еще одна причина проверить использование индексов - удаление индексов, которые не используются. Каждый индекс оказывает воздействие определенного уровня при изменениях (INSERT/UPDATE/DELETE), и если индекс не является полезным, он будет только создавать проблемы.
Continue reading "Индексы: обнаружение неиспользуемых индексов"

5 способов сделать резервные копии в SQL Server

Пересказ статьи Lee Markum. 5 Ways to Make SQL Server Backups


В прошлый раз мы обсуждали 5 типов резервных копий. Сейчас я хочу представить вам пять способов сделать бэкап в SQL Server. Я не смогу продемонстрировать все доступные опции каждого из этих шести методов. Здесь много чего есть даже для такой простой темы как бэкапы.
Continue reading "5 способов сделать резервные копии в SQL Server"

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 могут быть входными параметрами"

Методы авторизации 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, логины и пользователи базы данных"

Перераспределение данных по файлам

Пересказ статьи Steve Jones. Redistributing Data Across Files


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

Continue reading "Перераспределение данных по файлам"

10 ваших топовых идей для SQL Server

Пересказ статьи Brent Ozar. Your Top 10 Ideas for SQL Server


Вы отправляете тысячи отчетов о багах и пожеланий на feedback.azure.com, и вот 10 топовых запросов по результатам голосования:

Continue reading "10 ваших топовых идей для SQL Server"

Поиск фрагмента текста по всей базе данных


Проблема


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