Сертификация Майкрософт

на примере SQL Server
 
1 2 3
+
+1
-
edit
 

yacc

старожил
★★☆
Теперь о втором экзамене 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, но после скачки он что-то работать не захотел. И пока я перебивался онлайн-тестом, который оказался вполне себе удобным. Служба поддержки предложила сменить пароль и скачать еще раз - вполне вероятно что архив шифруется данными учетной записи. Но я до этого не дошел.
 64.0.3282.11964.0.3282.119
+
+1
-
edit
 

yacc

старожил
★★☆
Ну а теперь подведем некие итоги.

Сначала о затратах:
Сам экзамен : $60 + $80 = $140 = 8400
Тесты в миниамальной конфигурации: $89 + $99 = $188 = 11280
Т.е. на сдачу с использованием практических тестов потребуется в сумме для MCSA около 20.000 рублей.
Я заплатил несколько больше, поскольку проходил этот путь впервые.

Для сравнения - у Эврики есть интенсивные курсы, соответствующие знаниям экзаменов.
Стоимость их 25.000 и 30.000 соответственно - т.е. 55.000 суммарно, сдача экзамена идет как бонус и дополнительно не оплачивается. На курсы отводится 4-5 дней на каждый. Однако мне бы было тяжело все это так ускоренно в голове держать, не имея времени детально повозиться с нюансами. Такое имеет смысл только для организаций.

Затраты по времени:
Готовиться к 70-761 я начал в начале ноября, а сдал 12 января. Т.е. около 2.5 месяцев, но надо иметь ввиду, что я провел почти все новогодние выходные в тестах. Без учета такого длительного отпускного времени ушло бы около 3 месяцев. Кроме того - он в гораздо большей степени соответствует практическому опыту.
На 70-762 с 12 января по 7 мая ушло около 4 месяцев.
Т.е. суммарно - порядка полгода.

Освоенный мною алгоритм прохождения примерно такой:
1. Читаем учебную книжку ( первый раз )
2. Читаем ее внимательно второй раз, проходим все примеры, что в ней проведены и все тесты и мысленные эксперименты
3. Если в книжке есть ссылки на доп. материалы - читаем их, проходим примеры что в них есть. Непонятные моменты проходим самостоятельно ( как я с XML ).
4. Когда это все освоено - заказываем онлайн тест на месяц
5. Прогоняем себя на онлайн тесте, еще раз смотрим книгу и доп.материалы касательно вопросов, особенно если они заковыристые.
6. Параллельно еще раз смотрим книгу - но те моменты, которые не присутствуют в тесте - они могут попасться тоже.
7. После того как тест сдается уже легко - вы готовы к сдаче
8. Регистрируемся на экзамен и оплачиваем его
9. Сдаем.

Для прогона примеров необходимо иметь установленный SQL 2016 желательно Developer Edition - т.е. в максимальной конфигурации. Формально можно его не ставить, а оплатить лабу на том же MeasureUp - вот скриншот, как она выглядит ( при покупке оффлайн экзамена час лабы идет бонусом и предоставляется бесплатно ) - т.е. можно заходить и работать прямо с браузера. Но оплачивать 16 часов за $149 я считаю расточительным.
Лаба может потребоваться если разбирать инсталляцию сервера, особенно в варианте кластера, когда надо поставить порядка 6 машин и мощности домашнего может не хватить. Для отработки запросов достаточно одного установленного сервера на домашней/рабочей машине.

Экзамены я сдавал чисто для себя - по работе данный сертификат не требуется. Однако, могу сказать, что подготовка и сдача открыла для меня области, в которые я обычно дотошно и не залазил. Кроме того, материалы в книгах поданы систематически - это дает более целостый взгляд, чем когда ты сталкиваешься по работе и гуглишь ответы на форумах или том же Stackowerflow - когда что-то если и запоминается, то запоминается фрагментально. Также это безусловно сказалось на Code Review - когда просматриваешь изменения кода или новый дизайн, сделанный программистами ( а это одна из моих обязанностей ), то начинаешь замечать тонкости, на которые ранее не обращал внимания - ведь по факту очень многие вопросы как теста, так и экзамена - это Code Review.
Дополнительно интенсивная работа с источниками на английском расширяет опыт его чтения - проще читать материалы да и статьи технического описания на самом Майкрософт.
Таким образом персонально для себя я нахожу этот новый опыт весьм полезным.

Кто решит попробовать собственные силы и сдать - надеюсь, я тут максимально подробно описал как это сделать и что для этого нужно - удачи!
Прикреплённые файлы:
70-761-mu-lab.jpg (скачать) [1278x909, 330 кБ]
 
 
 64.0.3282.11964.0.3282.119
Это сообщение редактировалось 12.05.2018 в 23:42
19.05.2018 17:05, Mishka: +1: Хорошее дело сделал!

Mishka

модератор
★★★
16-й> Уже забыл за давностью - сиквел что ли имена в выборке не уникализирует автоматом?
Сама идея нормалиации представления — не иметь дублирующейся инфы. :)
 60.060.0
+
+1
-
edit
 

Mishka

модератор
★★★
16-й> В реляционной модели, строго говоря, и реляций нет как таковых.
Не соглашусь. Реляционная модель (любая, а не только Кода) базируется на реляционной алгебре. Основа чисто математическая и вводит те самые реляции или реляционные отношения. Даже в приведённом тексте Димой те самые туплеты везде упоминаются. Вылазят они из базисного определения реляционныой алгебры.
Но это чистая теория, при этом математическая. Народ от таких подробностей "сломает мозК", поэтому эту часть часто дают вскольз.
 60.060.0
+
+2
-
edit
 

Mishka

модератор
★★★
yacc> Собственно ветку я и затеял чтобы показать как сдать с гарантией - поэтому позже будет понятно.
Молоток! Хорошее дело браком не назовут затеял! :F
 60.060.0

16-й

опытный
★★
16-й>> В реляционной модели, строго говоря, и реляций нет как таковых.
Mishka> Но это чистая теория, при этом математическая.

То ты моего брюзжания не уловил. Большая часть юзающих СУБД, особенно помоложе, под "реляциями" полагают механизм foreign key, из которых при реверсе получаются те самые стрелочки между квадратиками таблиц.
 65.0.3325.18165.0.3325.181

Mishka

модератор
★★★
16-й> То ты моего брюзжания не уловил. Большая часть юзающих СУБД, особенно помоложе, под "реляциями" полагают механизм foreign key, из которых при реверсе получаются те самые стрелочки между квадратиками таблиц.
Не, гораздо больше. :) Всякие нормальные формы были задолго. И про проблему нормализации (кстати, NP-полная задача) давно известно. А изучать СУБД чисто профессионально я начал где-то с 1983. :) Но опять же, начинал с математики. И оракл я щупал ещё на 6 дискетках по 720 КБ. :) В общем, в теории всё было ещё до Кодда (он предложил свою алгебру в 70-е). Тем более, что шеф у меня алгебраист. :) Так годовой спецкурс в 1983-1984 зашёл на ура. Да и давали его, как математикам, т.е. вначале теорию чисто математическую, потом практику, потом уже особенности создание таких СУБД.
 60.060.0
+
+2
-
edit
 

yacc

старожил
★★☆
Итак, годовщина Великой Октябрьской социалистической революции была встречена тудовым почином - в виде интенсивной последней подготовки к 70-767 ( Implementing a Data Warehouse using SQL )

Сегодня я его сдал - результат в аттаче :)
Прикреплённые файлы:
mcse.jpg (скачать) [352x352, 26 кБ]
 
 
 
09.11.2018 08:16, Полл: +1: Крут, батька! :)

yacc

старожил
★★☆
Немного о подготовке.
Формально есть книга по 70-767


Но эта книга в чистом виде справочник - что может встретиться на экзамене с очень кратким объяснением

Готовиться имеет смысл по предыдущей 2012 версии 70-463


Вот в ней надо пройти упражнения ( скачать к ней код ), чтобы все пощупать руками.

Плюс более детально посмотреть DQS и MDS - встречаться в вопросах будет только так.

Мне в том числе попались команды для Azure и выражения на MDX ( для кубов на SSAS ), которые отсутствуют в обоих книгах
Плюс имеет смысл отдельно поиграться с партициями и их переключениями

Например есть тут

Table Partitioning in SQL Server - The Basics - Cathrine Wilhelmsen

There are many benefits of partitioning large tables, but it is not a trivial task. This post covers the basics of Table Partitioning in SQL Server. //  www.cathrinewilhelmsen.net
 

Table Partitioning in SQL Server - Partition Switching - Cathrine Wilhelmsen

Inserts, updates and deletes can be slow. A main benefit of table partitioning is faster loading and archiving by using partition switching. //  www.cathrinewilhelmsen.net
 

Плюс имеет смысл потренироваться до 95% правильных ответов в тесте для 70-463
 64.0.3282.11964.0.3282.119
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru