Skip to content

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

Продолжить чтение "Перераспределение данных по файлам"

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

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


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

Продолжить чтение "10 ваших топовых идей для SQL Server"
Категории: T-SQL

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


Проблема


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

ISNULL, COALESCE и производительность

Пересказ статьи Erik Darling. ISNULL, COALESCE, And Performance


ANSI Бландарт


Иногда имеются веские основания использовать либо COALESCE, либо ISNULL в силу того, что они имеют разные возможности, поведение и поддержку в разных базах данных. Продолжить чтение "ISNULL, COALESCE и производительность"

Генерация случайных чисел в SQL

Пересказ статьи Chad Callihan. Generating Random Numbers in SQL



Я редко использую случайные числа, поэтому, когда они требуются, мне приходится возвращаться и вспоминать. Возможно, написание поста на эту тему задержат их в моей памяти подольше.
Продолжить чтение "Генерация случайных чисел в SQL"
Категории: T-SQL

Освоение TempDB: основы

Пересказ статьи Monuca Rathbun. Mastering TempDB: The basics


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

Продолжить чтение "Освоение TempDB: основы"

Что это за база данных model?

Пересказ статьи Garry Bargsley. What is a model database?


Вы заглядывали когда-нибудь в раздел системных баз данных SSMS? Те, кто только начинает работать с SQL Server, могут многого не знать о важных системных базах данных. Для функционирования каждого SQL Server требуются четыре системные базы данных.
Продолжить чтение "Что это за база данных model?"
Категории: T-SQL

Объекты поддержки диаграмм базы данных SQL Server Management Studio не могут быть установлены

Sergey Grigoyan. SQL Server Management Studio Database Diagram Support Objects Cannot be Installed


Проблема


Иногда необходимо нереименовать машину хоста после установки SQL Server. После изменения имени хоста и выполнения связанных с этим изменений мы можем успешно подключаться с новым именем и без проблем работать с SQL Server. Однако возможна скрытая проблема, с которой вы можете столкнуться при создании диаграммы базы данных. Ниже показано сообщение об ошибке, которое вы можете получить и в котором говорится, что невозможно создать диаграмму базы данных, т.к. у базы данных отсутствует допустимый владелец.
Продолжить чтение "Объекты поддержки диаграмм базы данных SQL Server Management Studio не могут быть установлены"
Категории: T-SQL

Когда Intellisense не видит ваш новый объект

Пересказ статьи Andy Galbraith. Toolbox - When Intellisense Doesn't See Your New Object


Я работал над новым SQL заданием (SQL job), и частью задания было добавление нескольких новых таблиц в нашу базу данных обслуживания DBA для хранения данных задания. Я создал запросы мониторинга, а затем - новые таблицы для хранения этих данных. Продолжить чтение "Когда Intellisense не видит ваш новый объект"
Категории: T-SQL

Любопытный случай сортировки с Top N

Пересказ статьи DANIEL HUTMACHER. The curious case of the Top N Sort


Просматривая сессию саммита PASS 2017 Брента Озара на Youtube, я узнал, что оператор сортировки Top N в SQL Server резко меняет свое поведение в зависимости от того, сколько строк вы хотите получить из TOP.

Рассмотрим следующий пример запроса в базе данных Stack Overflow:
Продолжить чтение "Любопытный случай сортировки с Top N"

Блокировки, блокирование и тупики в SQL Server

Пересказ статьи John McCormack. Locks, blocks and deadlocks in SQL Server


Терминология имеет значение: Locks, blocks и deadlocks


Я потерял счет тому, сколько раз мне говорили о существовании тупика в базе данных, но стоило проверить и посмотреть, так никаких тупиковых ситуаций не обнаруживалось. В этом сценарии обычно они пытались описать блокировку. Администратору баз данных или разработчику важно знать различие между блокировками (Lock), блокированием (block) и тупиками (deadlock).
Продолжить чтение "Блокировки, блокирование и тупики в SQL Server"