Проверяет умение выходить за рамки ORM и оптимизировать через нативный SQL.
Да, для сложных отчётов, аналитических запросов и пакетных операций я писал T-SQL вручную, используя CTE, оконные функции и прямой UPDATE/MERGE. Это позволило оптимизировать планы выполнения и снизить нагрузку, а также использовать специфичные для SQL Server возможности.
Сценарии:
- Сложные агрегации с ROW_NUMBER() OVER().
- Массовые обновления через MERGE.
Пример CTE:
WITH Ranked AS (
SELECT *, ROW_NUMBER() OVER(PARTITION BY Category ORDER BY Date DESC) rn
FROM Sales
)
SELECT * FROM Ranked WHERE rn = 1;
Преимущества:
- Контроль плана выполнения, хинты (OPTION (RECOMPILE)).
Интеграция:
- Через ExecuteSqlRaw, FromSqlRaw в EFCore.
Вывод:
Вручную SQL пишется, когда ORM не даёт нужной гибкости или оптимальности.