Содержание курса
SQL Server 2025 для backend-разработчика: старт
8 уроков
1.
Что мы будем строить: проект Waybill
↗
2.
Из чего состоит SQL Server 2025: экземпляр, база, схема, объект
↗
3.
Инструменты: sqlcmd, SSMS 22, VS Code MSSQL, Docker
↗
4.
Создаём базу Waybill: файлы, файловые группы, настройки
↗
5.
Пакеты, GO, переменные и поток управления
↗
6.
Схемы, объекты и системный каталог sys.*
↗
7.
Диагностика с первого дня: DMV и Extended Events
↗
8.
Практика: окружение и первая схема Waybill
↗
T-SQL 2025 глазами разработчика из другого диалекта
10 уроков
1.
Типы данных и неявные преобразования
↗
2.
Выборка по-T-SQL: TOP, OFFSET-FETCH, APPLY и CTE
↗
3.
Новые функции T-SQL 2022–2025 в ежедневной работе
↗
4.
Оконные функции, WINDOW-клауза и агрегаты
↗
5.
Модификация данных: OUTPUT, MERGE и upsert-шаблоны
↗
6.
NULL, тройная логика, SET-опции и коллации
↗
7.
Ошибки: TRY/CATCH, THROW, XACT_ABORT и ERROR_*
↗
8.
Временные таблицы, табличные переменные и табличные типы
↗
9.
Динамический SQL безопасно: sp_executesql
↗
10.
Практика: переносим запросы из PostgreSQL на T-SQL
↗
Проектирование схемы Waybill: таблицы, ключи, ограничения
9 уроков
1.
Модель данных Waybill и разбиение по схемам
↗
2.
Ключи: IDENTITY, SEQUENCE, uniqueidentifier и кластерный ключ
↗
3.
Типы столбцов для продакшена
↗
4.
Ограничения: PK, UNIQUE, CHECK с regex, DEFAULT
↗
5.
Внешние ключи, каскады и индексы под них
↗
6.
Вычисляемые столбцы, PERSISTED и детерминизм
↗
7.
Сжатие данных: ROW, PAGE и оценка выгоды
↗
8.
Эволюция схемы: ALTER TABLE и идемпотентные миграции
↗
9.
Практика: DDL ядра Waybill в project/sql
↗
Индексы и физическое хранение
9 уроков
1.
Как SQL Server хранит строки: страницы, B+-деревья, heap
↗
2.
Кластерный индекс: выбор ключа и последствия
↗
3.
Некластерные индексы: ключи, INCLUDE, покрытие, lookups
↗
4.
Фильтрованные индексы и индексы по вычисляемым столбцам
↗
5.
Статистика и оценка кардинальности
↗
6.
Columnstore поверх OLTP: NCCI и CCI
↗
7.
Обслуживание индексов: REBUILD, REORGANIZE, RESUMABLE, ONLINE
↗
8.
Пропущенные и бесполезные индексы через DMV
↗
9.
Практика: индексируем Waybill под реальные запросы
↗
Нативный JSON в SQL Server 2025
9 уроков
1.
Тип json против nvarchar(max): что изменилось в 2025
↗
2.
Чтение JSON: JSON_VALUE, JSON_QUERY, JSON_PATH_EXISTS
↗
3.
OPENJSON: превращаем документ в таблицу
↗
4.
Формируем JSON: FOR JSON, JSON_OBJECT, JSON_ARRAY
↗
5.
Агрегация в JSON: JSON_OBJECTAGG и JSON_ARRAYAGG (2025)
↗
6.
Изменение документов: JSON_MODIFY
↗
7.
JSON_CONTAINS и индексирование JSON
↗
8.
Паттерны: payload перевозчика и эволюция схемы
↗
9.
Практика: сырые webhooks перевозчиков в Waybill
↗
Строки, регулярные выражения и нечёткий поиск
8 уроков
1.
Регулярные выражения в T-SQL 2025: семейство REGEXP_*
↗
2.
REGEXP_SUBSTR, REGEXP_REPLACE, REGEXP_INSTR: нормализация
↗
3.
REGEXP_MATCHES и REGEXP_SPLIT_TO_TABLE: табличный разбор
↗
4.
Коллации: сравнение, сортировка, UTF-8, BIN2
↗
5.
Нечёткое сравнение: EDIT_DISTANCE и JARO_WINKLER (2025)
↗
6.
Full-Text Search: CONTAINS, FREETEXT, каталоги
↗
7.
Строковые функции для ETL: STRING_SPLIT, STRING_AGG, TRANSLATE
↗
8.
Практика: нормализация адресов и трек-номеров
↗
Хранимый код: процедуры, функции, триггеры
9 уроков
1.
Где место логике: приложение или T-SQL
↗
2.
Хранимые процедуры: параметры, OUTPUT, RETURN, результаты
↗
3.
Табличные параметры и массовые операции
↗
4.
Функции: inline TVF, multi-statement TVF, скалярные UDF
↗
5.
Триггеры: когда уместны и как писать безопасно
↗
6.
Идемпотентность и upsert в процедурах
↗
7.
Вызов внешних REST API: sp_invoke_external_rest_endpoint (2025)
↗
8.
Версионирование и деплой хранимого кода
↗
9.
Практика: процедура ingest событий Waybill
↗
Транзакции, блокировки и optimized locking
10 уроков
1.
Транзакции в SQL Server: autocommit, явные, вложенные
↗
2.
Уровни изоляции и версионирование: RCSI и SNAPSHOT
↗
3.
Блокировки: режимы, гранулярность, эскалация
↗
4.
Optimized locking (2025): TID и lock after qualification
↗
5.
Deadlocks: граф, XEvents и стратегия retry
↗
6.
Хинты блокировок и очереди: UPDLOCK, READPAST, ROWLOCK
↗
7.
Прикладные блокировки: sp_getapplock
↗
8.
Долгие транзакции, журнал и ADR
↗
9.
Оптимистичная конкуренция: rowversion и ETag
↗
10.
Практика: горячие строки при ingest событий
↗
Производительность: планы, Query Store и IQP
10 уроков
1.
Читаем план выполнения
↗
2.
Parameter sniffing и его лечение
↗
3.
Query Store: включение, чтение, форсирование
↗
4.
Intelligent Query Processing 2025: feedback-механизмы
↗
5.
Batch mode, adaptive joins и interleaved execution
↗
6.
Хинты: USE HINT, Query Store hints, ABORT_QUERY_EXECUTION
↗
7.
Wait statistics: где сервер ждёт
↗
8.
Extended Events вместо Profiler
↗
9.
Анти-паттерны T-SQL и как их ловить
↗
10.
Практика: ускоряем SLA-отчёт Waybill
↗
Массовые данные: загрузка, секционирование, архивирование
9 уроков
1.
Массовая загрузка: BULK INSERT и OPENROWSET(BULK)
↗
2.
Минимальное логирование и модели восстановления
↗
3.
Секционирование: функции, схемы, выровненные индексы
↗
4.
Sliding window: SPLIT, MERGE, SWITCH, TRUNCATE секций
↗
5.
Батчевое удаление и обновление
↗
6.
Columnstore для событий: аналитика по миллионам строк
↗
7.
Агрегаты для аналитики: APPROX_*, PRODUCT, GROUPING SETS
↗
8.
Генерация тестовых данных
↗
9.
Практика: миллион событий и sliding window
↗
История изменений: temporal, CT/CDC, ledger, CES
9 уроков
1.
System-versioned temporal tables
↗
2.
Запросы к истории: FOR SYSTEM_TIME
↗
3.
Обслуживание temporal: retention, схема, columnstore-история
↗
4.
Change Tracking: лёгкая синхронизация
↗
5.
Change Data Capture: журнал изменений для ETL
↗
6.
Ledger-таблицы: проверяемая история
↗
7.
Change Event Streaming (2025): события в Kafka/Event Hubs
↗
8.
Transactional outbox против CES для Waybill
↗
9.
Практика: история статусов и outbox уведомлений
↗
SQL Server 2025 из .NET: SqlClient, Dapper, EF Core
10 уроков
1.
Microsoft.Data.SqlClient: подключение, шифрование, пул
↗
2.
Async, отмена и таймауты
↗
3.
Параметры и типы: SqlDbType, длины, json
↗
4.
Dapper поверх SqlClient: репозитории Waybill
↗
5.
SqlBulkCopy и TVP из C#
↗
6.
Устойчивость: transient errors, deadlock 1205, retry
↗
7.
EF Core 10 и SQL Server 2025
↗
8.
Транзакции из приложения
↗
9.
Наблюдаемость: OpenTelemetry, Application Name, корреляция
↗
10.
Практика: Waybill.Api — webhook и timeline
↗
Асинхронность внутри сервера: очереди, Agent, In-Memory OLTP
8 уроков
1.
Очереди на таблицах: dequeue-паттерн
↗
2.
Service Broker: очереди, сообщения, активация
↗
3.
Service Broker как транспорт outbox
↗
4.
SQL Server Agent: задания, расписания, оповещения
↗
5.
In-Memory OLTP: memory-optimized таблицы
↗
6.
Natively compiled процедуры
↗
7.
Ресурсы сервера: MAXDOP, cost threshold, Resource Governor
↗
8.
Практика: диспетчер уведомлений Waybill
↗
AI в SQL Server 2025: VECTOR, векторный поиск, внешние модели
9 уроков
1.
Тип vector: хранение, размерность, преобразования
↗
2.
VECTOR_DISTANCE и точный kNN
↗
3.
Внешние модели: CREATE EXTERNAL MODEL и AI_GENERATE_EMBEDDINGS
↗
4.
Чанкинг текста: AI_GENERATE_CHUNKS
↗
5.
Векторные индексы DiskANN и VECTOR_SEARCH
↗
6.
Гибридный поиск: вектор + full-text + фильтры
↗
7.
RAG-паттерн: база и приложение
↗
8.
Эксплуатация AI-функций
↗
9.
Практика: похожие инциденты в Waybill
↗
Безопасность: доступ, RLS, шифрование, аудит
9 уроков
1.
Модель безопасности: логины, пользователи, роли, схемы
↗
2.
Аутентификация: Windows, SQL, Microsoft Entra ID
↗
3.
Минимальные привилегии: EXECUTE AS и ownership chaining
↗
4.
Row-Level Security: изоляция арендаторов
↗
5.
Dynamic Data Masking
↗
6.
Always Encrypted и secure enclaves
↗
7.
TDE и шифрование бэкапов
↗
8.
SQL Audit и защита от инъекций
↗
9.
Практика: безопасность Waybill для арендаторов
↗
Эксплуатация глазами разработчика: бэкапы, HA, CI/CD, контейнеры
9 уроков
1.
Модели восстановления и журнал транзакций
↗
2.
Backup и restore в 2025: ZSTD, S3, point-in-time
↗
3.
Accelerated Database Recovery
↗
4.
Высокая доступность: Always On, contained AG, read-scale
↗
5.
SQL Server 2025 в контейнерах и на Linux
↗
6.
Миграции схемы: скрипты, DACPAC, EF Migrations
↗
7.
Тестирование T-SQL: tSQLt и интеграционные тесты .NET
↗
8.
CI/CD для базы: GitHub Actions
↗
9.
Практика: воспроизводимый стенд Waybill
↗
Финальный проект: Waybill целиком
8 уроков
1.
Архитектура Waybill: что получилось
↗
2.
Сквозной сценарий: от webhook до отчёта
↗
3.
Нагрузочное тестирование: Simulator и метрики сервера
↗
4.
Runbook обслуживания
↗
5.
Чек-лист code review для T-SQL
↗
6.
Ошибки миграции с PostgreSQL/MySQL/Oracle
↗
7.
Развитие проекта
↗
8.
Итоговая практика: расширяем Waybill
↗