Skip to content

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

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


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

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

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

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

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


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

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