Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

MS SQL Server разработчик

Guru SQL: подробно об оптимизации, планах, транзакциях и о том, как писать эффективные запросы на данных большого объёма
Зачем нужно тестирование?

Длительность

4 месяца

Начало

31 января 2019 года

Занятия

Пн 20:00, Чт 20:00

Общая стоимость

30 000 ₽

В месяц

9500 ₽

В кредит:

9500 ₽ в месяц

Хочу дешевле
Общая стоимость
30 000 ₽
В месяц: 9500 ₽
В кредит: 30000 ₽
в месяц
Продолжительность
4 месяца, 4 часа в неделю
Пн 20:00, Чт 20:00
Начало занятий
31 января 2019 года
Что даст вам этот курс

Во время курса будем подробно разбирать язык запросов и внутренние процессы СУБД, происходящие на всех этапах работы с запросом. Курс позволит понять детали процессов и получить чёткое представление, что делает тот или иной код, где могут возникнуть потенциальные проблемы, как их можно разрешить.

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

Этот курс предназначен для:
— разработчиков с опытом работы с базами на уровне «делал и использовал, но как внутри работает не знаю» (например, через ORM);
— разработчиков с небольшим опытом работы с базами данных и желанием продвинуться дальше.

После обучения вы сможете:
— разрабатывать на SQL;
— проектировать БД и понимать все нюансы;
— анализировать и оптимизировать производительности запросов;
— писать сложные хранимые процедуры, функции и триггеры;
— читать план запроса.

Выпускной проект — создание и оптимизация собственной базы данных (для своей компании/стартапа). Преподаватель поможет с выбором темы и подскажет, как уменьшить scope работ, а у вас появится возможность получить обратную связь и отработать полученные знания на реальном материале.


5 работодателей

Много практики и кейсов из реальных проектов

Вы, наверное, заметили, что программа отличается от обычной в университете. Вместо стандартных этапов "проектирование - обучение использованию - оптимизация" я предлагаю enterpise-схему, которая совпадает с порядком вещей на практике: устраиватесь на работу, вам показывают текущий проект, вы читаете код, который был написан до вас, и пишите свои небольшие кусочки. И только когда вы уже стали опытным разработчиком, вам дают задачу спроектировать какие-то таблицы, и позже всю базу данных. В своей программе я сделала те же этапы и в том же порядке, который встречается в реальных проектах.
Кристина Кучерова
Преподаватель курса
Вы, наверное, заметили, что программа отличается от обычной в университете. Вместо стандартных этапов "проектирование - обучение использованию - оптимизация" я предлагаю enterpise-схему, которая совпадает с порядком вещей на практике: устраиватесь на работу, вам показывают текущий проект, вы читаете код, который был написан до вас, и пишите свои небольшие кусочки. И только когда вы уже стали опытным разработчиком, вам дают задачу спроектировать какие-то таблицы, и позже всю базу данных. В своей программе я сделала те же этапы и в том же порядке, который встречается в реальных проектах.
Кристина Кучерова
Преподаватель курса
Преподаватель
Кристина Кучерова
Сбербанк России
Архитектор модели данных в Сбербанке России. Окончила ЮРГПУ (НПИ) по специальности «Математическое обеспечение и администрирование информационных систем». С 2015 года — аспирант в Санкт-Петербургском политехническом университете им. Петра Великого.

Работала в компании Comepay в качестве DB-тимлида и заместителя тех. директора по архитектуре. Принимала участие в реализации проекта Syncplicity (Distillery, USA), где занималась разработкой БД и оптимизацией производительности.

Участник отраслевых конференций CMG Impact 2016 (San Diego, USA), Zabbix Conf 2017 (Рига, Латвия) и прочих.

Есть опыт преподавания курса «Базы Данных» в Ростовском колледже связи и информатики. Считает, что очень важно учиться именно на кейсах из реального производства.
Преподаватель
Кристина Кучерова
Сбербанк России
Архитектор модели данных в Сбербанке России. Окончила ЮРГПУ (НПИ) по специальности «Математическое обеспечение и администрирование информационных систем». С 2015 года — аспирант в Санкт-Петербургском политехническом университете им. Петра Великого.

Работала в компании Comepay в качестве DB-тимлида и заместителя тех. директора по архитектуре. Принимала участие в реализации проекта Syncplicity (Distillery, USA), где занималась разработкой БД и оптимизацией производительности.

Участник отраслевых конференций CMG Impact 2016 (San Diego, USA), Zabbix Conf 2017 (Рига, Латвия) и прочих.

Есть опыт преподавания курса «Базы Данных» в Ростовском колледже связи и информатики. Считает, что очень важно учиться именно на кейсах из реального производства.
Минимальные знания
Этот курс вам подойдёт, если вы:
— работали с БД и знаете, как они выглядят
— писали или читали простые запросы
— знаете типы данных и основные операторы на базовом уровне
— являетесь выпускником курса «Реляционные СУБД»
Программа обучения
Модуль 1
Использование БД
Модуль 2
Проектирование БД
Модуль 3
Оптимизация и Администрирование БД
Использование БД
Базы данных и какие они бывают
Что такое базы данных и какие они бывают?
Как появились и где какие виды используются?
О возможностях SQL server и об Azure
О том как будем работать и как развернуть бэкап учебной базы.
31 января, 20:00 — 21:30
Домашние задания: 1
1 Разворачиваем Backup и смотрим какой проект какую СУБД использует
1) Выберите проект, которым вы часто пользуетесь и найдите информацию с помощью какой базы данных он реализован.
Классификация: иерархическая, сетевая, реляционная, объектно-ориентированная, NoSql (если знаете колоночная, key-value, документарная, in-memory, графовая)
Структура ответа:
Название проекта: Проект
Используемые базы данных: БД (реляционная), БД (NoSQL документарная)
Количество серверов БД: 10
Ссылка на источник:
2) Разверните дома БД [WideWorldImporters]
Скрин БД с выборкой из любой таблицы"
Оператор SELECT и простые фильтры
Работа с БД MS SQL работа с таблицами, язык SQL, оператор SELECT
Простые фильтры в WHERE, объединение условий
Планы запросов.
Виды соединений таблиц.
4 февраля, 20:00 — 21:30
Домашние задания: 1
1 Запросы SELECT
Написать по 1му запросу с примерами каждого вида JOIN, и фильтров.
Выберите 10 последних заказов с именем клиента и именем сотрудника, который оформил заказ.
SQL операторы изменения данных
Операторы INSERT, UPDATE, UPSERT, DELETE, MERGE, Bulk insert
11 февраля, 20:00 — 21:30
Домашние задания: 1
1 Insert, Update, Merge
Довставлять в базу 5 записей использую insert
в таблицу Customers или Suppliers
удалите 1 запись из Customers, которая была вами добавлена
изменить одну запись, из добавленных через UPDATE
Написать MERGE, который вставит вставит запись в клиенты, если ее там нет, и изменит если она уже есть
Напишите запрос, который выгрузит данные через bcp out и загрузить через bulk insert
Подзапросы и WITH в SQL
Операторы IN, EXISTS, NOT EXISTS, ANY, SOME, ALL
Выборки из подзапросов.
WITH табличные выражения (в том числе рекурсивные).
Анализируем получающиеся планы и сравниваем их.
14 февраля, 20:00 — 21:30
Домашние задания: 1
1 Пишем подзапросы
Написать запросы
выберите сотрудников, которые являются продажниками, и еще не сделали ни одной продажи


Временные таблицы и табличные переменные
Разобраться что есть что, в чем разница, когда что использовать.
18 февраля, 20:00 — 21:30
Домашние задания: 1
1 Сравниваем временные таблицы и табличные переменные
Напишите запрос с временной таблицей и перепишите его с табличной переменной. Сравние планы.
GROUP BY и HAVING
Как формируются группы, почему условия из HAVING нельзя написать в WHERE?
Аггрегатные функции. Написание отчетов.
21 февраля, 20:00 — 21:30
Домашние задания: 1
1 Группировки и агрегатные функции
1. Посчитать среднюю цену товара, общую сумму продажи по месяцам
2. Отобразить все месяцы где общая сумма продаж превысила 10 000
3. Вывести сумму продаж, дату первой продажи и количество проданного по месяцам, по товарам, продажи которых менее 50 ед в месяц.
Оконные функции в SQL
Windows функции в SQL - ROW_NUMBER, LAG, LEAD, NTILE.
Почему они оконные? Чем выгодны.
Сравним планы с оконными функциями и без них.
25 февраля, 20:00 — 21:30
Домашние задания: 1
1 Оконные функции
1. Сделать расчет суммы продаж нарастающим итогом по месяцам
2. Вывести список самого популярного продукта (по кол-ву проданных) в каждом месяце
Операторы CROSS APPLY, PIVOT, CUBE
Использование CROSS APPLY, PIVOT и UNPIVOT, CUBE, ROLLUP
28 февраля, 20:00 — 21:30
Домашние задания: 1
1 Pivot и Cross Apply
Напишите по 1 запросу с использованием
PIVOT
UNPIVOT
CROSS APPLY
Итоговое занятие по SELECT
Порядок выполнение, сортировки.
Как читать SELECT в несколько экранов, примеры.
Что такое SQL injections и как их избежать?
4 марта, 20:00 — 21:30
Операторы DDL
Create Table, alter table
Представления и материализованные представления.
Как менять БД под нагрузкой?
7 марта, 20:00 — 21:30
Домашние задания: 1
1 DDL
Создание таблиц и представлений для своего проекта.
Хранимые процедуры и фукнции
Создание хранимых процедур и функций, триггеры, циклы, курсоры
11 марта, 20:00 — 21:30
Домашние задания: 1
1 SP и function
1) Создать 1 функцию и 1 хранимую процедуру
2) Cоздать одинаковую функцию и хранимую процедуру, посмотреть в чем разница в производительности и почему
Уровни изоляции транзакций
Работа с транзациями и обработка ошибок в SQL.
Deadlock и и что с ними делать, флаги трассировки.
Как читать лог?
14 марта, 20:00 — 21:30
Домашние задания: 1
1 Смотрим разницу с разным уровнем транзакции
1) Прописываем для каких процедур какой уровень изоляции нужен.
2) Пишем запрос в транзакции где есть выборка, вставка\добавление\удаление данных и параллельно запускаем выборку данных в разных уровнях изоляции, нужно предоставить мини отчет, что на каком уровне было видно со скриншотами и ваши выводы (1-2 предложение)
3) Пишем паралелльно в 2х окнах добавление данных в одну таблицу с разным уровнем изоляции, изменение данных в одной таблице, изменение одной и той же строки. Что в итоге получилось, что нового узнали.
Динамический SQL
Обсудим разницу между Exec и sp_executesql.
Примеры динамического sql, когда его стоит использовать.
Процедуры типа "Kitchen sink".
18 марта, 20:00 — 21:30
Домашние задания: 1
1 Процедура вида Kitchen sink
Переписываем одну и ту же процедуру с множеством входных параметров по поиску в заказах на динамический SQL.
Сравниваем планы запроса.
Выборки из xml полей
Разберем варианты выборок из xml полей.
Напишем пару примеров выборок из разного xml'а.
21 марта, 20:00 — 21:30
Домашние задания: 1
1 Работа с разными видами xml
Тренеруемся писать запросы из xml для разных видов xml'а - сравниваем варианты.
Создание и использование CLR
Что такое CLR? Зачем это и как использовать?
25 марта, 20:00 — 21:30
Домашние задания: 1
1 Создаем CLR
Добавляем в SQL server через CLR функцию, которой лично вам не хватает.
Делимся впечатлением и опытом с коллегами
Проектирование БД
Проектирование БД
Как сделать схему БД.
Средства проектирования, нормализация.
28 марта, 20:00 — 21:30
Домашние задания: 1
1 Проект
Смотрим на схему, которая получилась в создании таблиц через DDL
Строим схему в use-case средстве, генерируем SQL код для создания.
Индексы
Виды индексов. Плюсы и минусы индексов.
Зачем они нужны?
Как их создавать?
1 апреля, 20:00 — 21:30
Домашние задания: 1
1 Какие индексы вам нужны
Думаем какие запросы у вас будут в базе и добавляем для них индексы. Проверяем, что они используются в запросе.
Подходы к проектированию БД
Разные виды таблиц, проектирование исходя из требований, паттерны.
Проектирование для безопасности и учета требования по персональным данным.
4 апреля, 20:00 — 21:30
Домашние задания: 1
1 Смотрим, что можно изменить
Смотрим на свои решения в проекте и перепроектируем.
Разница в проектировании OLTP и OLAP систем
Best practices для OLTP и для OLAP.
Подходы проектирования хранилищ данных.
8 апреля, 20:00 — 21:30
Домашние задания: 1
1 Маркируем, что у вас OLTP, что OLAP
Маркируем, что у вас OLTP, что OLAP по всем объектам,
Оцениваем насколько сложно их будет разнести по разным базам и разным серверам - пишем небольшой план, где какие таблицы останутся и нужно ли будет их дублировать.
Семинар по созданным проектам БД
Обсуждаем созданные проекты.
11 апреля, 20:00 — 21:30
Оптимизация и Администрирование БД
Планы запросов, а теперь подробнее.
Подробный анализ планов запросов, чтение статистик, использование планов из кэша SQL Server.
15 апреля, 20:00 — 21:30
Домашние задания: 1
1 Анализ плана
Анализ плана запроса и написание рекомендаций, что можно поправить в индексах\запросе исходя из плана.
DMV в SQL Server
Что такое DMV? Как их можно использовать?
Обсудим самые популярные из них.
18 апреля, 20:00 — 21:30
Домашние задания: 1
1 DMV
Написание 3 запросов с использованием dmv
Анализ по использованию индексов
Анализ индексов рекомендованных к созданию
Анализ самых больших таблиц базы данных
Оптимизация работы базы данных
Оптимизация работы базы данных: анализ узких мест и работа с ними Activity Monitor. Профилирование запросов и extended events
22 апреля, 20:00 — 21:30
Популярные Hint'ы и подсказки оптимизатору
Изучаем популярные виды Hint'ов
За и против их использования.
Семинар: Оптимизация сложных запросов
Разберем примеры запросов для оптимизации, можно и нужно приносить свои запросы с планами.
25 апреля, 20:00 — 21:30
Еще раз об индексах
Как работает обновление статистики?
Как найти недостающие индексы и неиспользуемые?
Как можно менять индексы на работающей системе?
Rebuild и reorg индексов в системе.
29 апреля, 20:00 — 21:30
Репликация данных, Job'ы и SQL Agent
Виды репликации в SQL Server, возможности настройки, как выбрать нужный тип репликации? Как настроить репликацию. Что нужно мониторить по репликации?
2 мая, 20:00 — 21:30
Очереди в MS SQL Server
Зачем нужны очереди?
Какие очереди в SQL Server бывают?
Создадим и настроим очередь.
6 мая, 20:00 — 21:30
Домашние задания: 1
1 Создание очереди
Создание очереди в БД для фоновой обработки задачи в БД.
Резервное копирование и восстановление
Немного про backup, restore, виды backup'ов.
9 мая, 20:00 — 21:30
Секционирование таблиц
Секционирование таблиц. Когда нужно его делать?
Пример секционирование со sliding window.
13 мая, 20:00 — 21:30
Домашние задания: 1
1 Секционирование таблицы
Выбираем в своем проекте таблицу-кандидат для секционирования и добавляем партиционирование.
Если в проекте нет такой таблицы, то делаем анализ базы данных из первого модуля, выбираем таблицу и делаем ее секционирование, с переносом данных по секциям (партициям) - исходя из того, что таблица большая, пишем скрипты миграции в секционированную таблицу
Безопасность в SQL Server
Немного про пользователей и политики безопасности в SQL Server.
16 мая, 20:00 — 21:30
Обсуждение проектов. Подводим итоги курса.
Обсуждение проектов, которые были созданы за курс.
Вспоминаем чему научились за курс.
20 мая, 20:00 — 21:30
Выпускной проект
Выпускной проект — создание и оптимизация собственной базы данных (для своей компании/стартапа). Преподаватель поможет с выбором темы и подскажет, как уменьшить scope работ, а у вас появится возможность получить обратную связь и отработать полученные знания на реальном материале.
После обучения вы
Сможете наконец сделать так, чтобы в базе всё считалось и не падало:
— перепишете свои запросы так, чтобы они работали в 5 раз быстрее
— удалите ненужные индексы и добавите нужные
— научитесь применять изменения к базе без простоя
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«MS SQL Server разработчик»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«MS SQL Server разработчик»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Партнеры ждут выпускников этого курса
Общая стоимость
30 000 ₽
В месяц: 9500 ₽
В кредит: ₽ в месяц
Продолжительность
4 месяца
Начало занятий
31 января 2019 года