Обложка: Стоит прочитать: обзор книги Дмитрия Короткевича «Pro SQL Server Internals»

Стоит прочитать: обзор книги Дмитрия Короткевича «Pro SQL Server Internals»

Сергей
Сергей

DBA в SimbirSoft

Если вы являетесь администратором баз данных – DBA, интересуетесь этой ролью и работаете с СУБД MS SQL Server, то данную книгу можно назвать обязательной к прочтению. В ней очень подробно и детально рассмотрены внутренности работы SQL Server. При этом материал очень хорошо структурирован и изложен. Книгу не обязательно сразу читать от корки до корки, можно использовать её как справочник и изучать выборочно интересующие темы. Но всё же я советую читать её последовательно, т.к. встречаются отсылки на другие главы. На текущий момент актуальным является второе издание книги, вышедшее в 2016 году, в котором дополнительно рассмотрены изменения и новые возможности, появившиеся в SQL Server 2016.

Книга состоит из нескольких крупных блоков. В первой части автор рассматривает, как SQL Server работает с данными. Здесь вы найдёте объяснение внутреннего устройства таблиц в базе данных, обсуждения того, как и когда SQL Server использует индексы, а также получите рекомендации по их проектированию и обслуживанию.

Вторая часть содержит обзор различных T-SQL объектов, их слабые и сильные стороны. Кроме того, рассматриваются конкретные случаи, когда следует и не следует использовать те или иные объекты. Эта часть также включает блок, посвященный секционированию данных. Ещё одна глава посвящена работе с JSON, поддержка которого появилась начиная с версии SQL Server 2016.

В третьей части автор рассказывает о модели параллелизма в SQL Server. Здесь описаны основные причины различных проблем с блокировками в SQL Server и показано, как их выявлять и устранять. Подробно рассматриваются различные типы блокировок, их совместимость. Конечно, блокировки нельзя понять в отрыве от уровней изоляции транзакций. Поэтому в этой главе также рассматриваются доступные в SQL Server уровни изоляции транзакций: как пессимистичные, так и оптимистичные. И наконец, в этой части вы найдёте ряд рекомендаций о том, как разработать стратегии работы с транзакциями таким образом, чтобы улучшить параллелизм в системах.

Четвертая часть сосредоточена на жизненном цикле запроса в SQL Server. В ней обсуждается оптимизация и выполнение запросов в SQL Server. Также в ней объясняется, как SQL Server кеширует планы выполнения, и демонстрируются некоторые проблемы, связанные с кешированием планов, которые обычно встречаются в системах.

Пятая часть книги рассказывает о том, как на практике обнаружить и устранить неполадки и проблемы в работе SQL Server. Здесь даётся обзор модели выполнения SQL Server и объясняется, как можно быстро диагностировать состояние системы и определить первопричину проблемы. И наконец, рассмотрена новая интересная функция Query Store, появившаяся в SQL Server 2016, и то, как она облегчает процессы диагностики и устранения неполадок, а также оптимизации запросов.

В шестой части книги подробно объясняется, как SQL Server работает с транзакционным логом, и дается ряд рекомендаций по проектированию стратегий резервного копирования и высокой доступности в системах.

В седьмой главе автор поднимает тему columnstore индексов. Рассматривается, как они могут значительно повысить производительность в DWH системах.  В SQL Server 2016 было сделано довольно много улучшений в этой области, включая использование индексов columnstore в сценариях оперативной аналитики. Всё это также рассматривается в этой главе.

И наконец, в последней главе описана реализация In-Memory OLTP в SQL Server 2014 и 2016. Эта технология может значительно улучшить производительность обработки транзакций, а также оптимизировать сценарии с использованием временных данных за счёт того, что данные хранятся в памяти и устраняется медленное звено в виде дисковой подсистемы.

Книга освещает не только теорию, но и практику, содержит огромное количество примеров кода для каждой рассматриваемой темы. Из-за этого воспринимать и усваивать материал становится намного легче. Поэтому «Pro SQL Server Internals» Дмитрия Короткевича по праву может стать настольной книгой каждого DBA SQL Server.