Теперь о втором экзамене 70-762 "Разработка SQL баз данных"
Формально часть глав о из него уже была в 70-461, но в данном случае читать рекомендую именно книгу 70-762.
Вот что в ней, по главам и умениям. Глав тут четыре.
1. Дизайн и реализация объектов баз данных
1.1. Дизайн и реализация реляционной схемы базы данных:
- разработка схем и таблиц по бизнес-требованиям, нормализация, выбор оптимальных типов данных
1.2. Дизайн и реализация индексов:
- создание индексов по таблицам, запросам и планам, колонки индексов и включенные данные ( INCLUDED ), особенности создания кластерных индексов
1.3. Дизайн и реализация представлений:
- создание представление по пользовательским и бизнес-требованиям, индексирование, обновляемые представления, секционированные представления.
1.4. Создание колонно-ориентированных индексов
- определение случаев применения колонно-ориентированных индексов, соотношение с обычными индексами, управление и поддержка
2. Создание программируемых объектов
2.1. Обеспечение целостности через ограничения ( constraints ):
- использование внешних ключей, ограничений проверки, первичных ключей
2.2. Создание хранимых процедур:
- создание хранимых процедур, параметры, выходные параметры, параметры-таблицы, обработка ошибок, коды возврата
2.3. Создание триггеров и функций:
- создание триггеров, триггеры на изменение схемы и на изменение данных и на вход, разница AFTER/INSTEAD OF, функции, детерминированность функций
3. Обеспечение параллельного выполнения ( concurrency )
3.1. Создание транзакций:
- создание транзакций, явные/неявные транзакции, точки сохранения, работа в высокопараллельной среде
3.2. Управление уровнями изоляции:
- определение уровня изоляции, результаты работы запросов в зависимости от уровня изоляции, влияние на ресурсы и производительность
3.3. Оптимизация параллельного выполнения и блокировок:
- диагностика и управление блокировками, эскалация блокировок, создание графа блокировок, обход тупиков ( deadlocks )
3.4. Таблицы в памяти ( Memory-Optimized Tables ) и собственные ( native ) процедуры:
- создание и использование, оптимизация производительности, сбор статистики
4. Оптимизация объектов базы данных и инфраструктуры
4.1. Оптимизация статистики и индексов:
- определение точности статистики, разработка задач обслуживания статистики, объекты DMV для статистики и индексов
4.2. Анализ планов исполнения и выявление неправильной работы:
- получение планов профайлером (SQL Trace) и расширенными событиями (Extended Events), ресурсозатратные операторы, сравнение планов, настройка Azure SQL Performance Insight
4.3. Управление производительностью экземпляров баз данных:
- Управление загрузкой сервера, создание Azure Elastic Scale, выбор редакции сервера, оптимизация баз и tempdb, мониторинг и диагностика планировщика сервера при помощи DMV, анализ подсистемы ввода-вывода, мониторинг производительности Azure
4.4. Мониторинг и сбор производительности сервера:
- анализ метрик операционной системы, работа с расширенными событиями, сравнение метрик во времени
Т.е. в целом книга посвящена дизайну баз и разрешения проблем при их использовании: производительность, блокировки, использование ресурсов. В отличи от 70-761 книга сразу подчеркивает, что в силу ограниченного объема, не может претендовать на широкое освещения таких обширных областей, поэтому предоставляет большое количество ссылок на внешние ресурсы: как на страницы на сайте документации Майкрософта, так и на блоги экспертов по SQL и книги. Книги как правило представлены бесплатной для скачивания серией, спонсируемой Red Gate ( фирмой-профессиналом в области создания утилит для управления базами данных), например "SQL Server Execution Plans, Second Edition".
Так вот - эти внешние ссылки - читать! Книги можно не читать от корочки до корочки, но базовую суть в них понимать - т.е. их просматривать тоже. Отдельным пунктом - обязательно разобраться с уровнями изоляции ( READ COMMITTED, SERIALIZABLE и т.п.), в том числе разобраться с блокировками, к которым они ведут, пообъектно - база, таблица, страница, строка, диапазон, т.е. понимать к каким проблемам при параллельном доступе это может привести - грязное чтение, фантомное чтение и т.п.
Обязательно надо разобраться с индексами, а конкретно со статистикой, а еще конкретнее - с гистограммами, чтобы понимать как это воспринимает оптимизатор при составлении плана на запрос - какие параметры он будет брать для оценки мощности данных ( cardinality ). В том числе и понимать колонно-ориентированных индексов - их сильные и слабые моменты. Безусловно надо пройтись по DMV - это точно будет в экзамене - какую использовать для той или иной диагностики. В целом имеет смысл пробежаться по тем или иным инструментам диагностики - будут вопросы какой использовать в том или ином случае.
Теперь о Azure - в экзамене будут вопросы и касательно него. В самой книге описан алгоритм заведения тестового аккаунта и тестовой базы - Майкрософт дает попробовать это бесплатно. Но по факту я этого не делал - в Azure V12 есть Performance Insight - такой аналог Query Store для обычного сервера - и достаточно понимать логику его работы, плюс некоторый сриншоты экранов из книги и доп.материалов тупо заучить. Несмотря на то, что в вопросе может звучать что это запускается на Azure - это во многих случаях будет мало отличаться от обычного сервера. Т.е. достаточно запомнить отличия.
Если первый экзамен 70-761 более рассчитан на разработчиков, то вторая книга более рассчитана либо на архитекторов баз данных - которые понимают особенности реализации той или иной функциональности ( скажем построение гистограмм для индексов или блокировки при транзакциях ) сервера, либо на DevOps либо на так называемых Accidental DBA - т.е. спецов по разруливанию неисправностей и проблем в процессе эксплуатации баз данных. Одним словом - мне этот курс пройти и покопаться в потрохах сервера было интересно.
7 мая я сдал по нему экзамен. После сдачи 70-761, с точки зрения организационных моментов, все было проще - поэтому на сдачу у меня ушло примерно 50 минут. После сдачи первого, второй обходится дешевле - я оплачивал $60 со скидкой.
Если требуется после сдачи получить сертификат - можно его pdf-варант скачать на сайте Майкрософт и распечатать самостоятельно. Выглядит он примерно так ( в данном случае это сертификат по облачным платформам ):
К слову, я заказывал оффлайн тест у MeasureUp, но после скачки он что-то работать не захотел. И пока я перебивался онлайн-тестом, который оказался вполне себе удобным. Служба поддержки предложила сменить пароль и скачать еще раз - вполне вероятно что архив шифруется данными учетной записи. Но я до этого не дошел.