Skip to content

SQL CASE: знать и избегать малоизвестных неприятностей

Пересказ статьи Edwin Sanchez. SQL CASE: Know and Avoid 3 Lesser-Known Hassles


Неприятности с CASE? Действительно?

Нет, пока вы не столкнетесь с 3 неприятными проблемами, которые могут вызвать ошибки во время выполнения и ухудшить производительность.

Если вы пролистаете подзаголовки, чтобы увидеть эти проблемы, я не буду вас винить. Читатели, к которым я также отношусь, нетерпеливы.
Continue reading "SQL CASE: знать и избегать малоизвестных неприятностей"

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

Пересказ статьи 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. Continue reading "Общие шаблоны плана запроса для оконных функций: выбор столбцов имеет значение"

Пять фактов о базе данных 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"

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

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


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

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

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

Пересказ статьи 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"