Skip to content

Еще одна причина, по которой я люблю динамический 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 "Поиск фрагмента текста по всей базе данных"

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

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


ANSI Бландарт


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

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

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



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

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

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


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

Continue reading "Освоение TempDB: основы"

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

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


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

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

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


Проблема


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

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

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


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

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

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


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

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

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

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


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


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

3 лучших совета для написания более быстрых представлений SQL

Пересказ статьи Edwin Sanchez. Top 3 Tips You Need to Know to Write Faster SQL Views


Друг или враг? Представления SQL Server были предметом жарких дебатов, когда я только начал использовать SQL Server. Говорилось, что это плохо, поскольку медленно. Но как обстоят дела сейчас?
Continue reading "3 лучших совета для написания более быстрых представлений SQL"

Агрегатные функции

Пересказ статьи Hugo Kornelis. Aggregate Functions


Введение


В настоящее время SQL Server поддерживает три оператора, которые могут вычислять агрегаты: Hash Match, Stream Aggregate и Window Aggregate. Все эти операторы используют один и тот же базовый принцип поддержки внутренних счетчиков по мере обработки строк, так что финальное значение этих внутренних счетчиков и является ожидаемым значением.
Continue reading "Агрегатные функции"