Skip to content

Общие шаблоны плана запроса для оконных функций: выбор столбцов имеет значение

Пересказ статьи Erik Darling. Common Query Plan Patterns For Windowing Functions: Column Selection Matters



Не доктор


Все наши предыдущие запросы выглядели примерно так:

WITH Comments AS 
(
SELECT
ROW_NUMBER() OVER
(
PARTITION BY
c.UserId
ORDER BY
c.CreationDate
) AS n
FROM dbo.Comments AS c
)
SELECT
c.*
FROM Comments AS c
WHERE c.n = 0;

Из таблицы Comments мы фактически выбирали только столбцы UserId и CreationDate, которые имеют типы integer и datetime. Продолжить чтение "Общие шаблоны плана запроса для оконных функций: выбор столбцов имеет значение"

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

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


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

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

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


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

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

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

Продолжить чтение "Никогда, никогда не начинайте комментарии в T-SQL с двух тире"
Категории: T-SQL

SET NOCOUNT для SQL Server

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


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

Альтернативы функциям 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.
Продолжить чтение "Альтернативы функциям GREATEST и LEAST в SQL Server"
Категории: T-SQL

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

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



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


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

Новости за 2021-07-03 - 2021-07-09

§ Новая задача от Kursist выставлена на 3 этапе (сложность 3 балла) под номером 235. При этом выполнены следующие перестановки задач:
235 -> 7 -> обуч.этап (156)


§ Данными от Kursist усилена проверка задачи 119 (SELECT, рейтинг)

Продолжить чтение "Новости за 2021-07-03 - 2021-07-09"

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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