-->

воскресенье, 26 июля 2015 г.

Заметки на полях: конкурентный доступ в SQL Server

Полагаю, многие разработчики, потратив кучу времени на изучение и систематизацию определенной области знаний, оставляют заметки со списком полезных источников и своими комментариями. И я не исключение. Бывает так, что поставленная проблема разрешена, и применение накопленных знаний какое-то время не требуется. Поэтому такие заметки сильно помогают при необходимости быстро освежить свои знания, когда различные детали и тонкости реализации уже выветрились из кратковременной памяти. Дабы повысить качество подобных записей - я решил попробовать публиковать их. Теперь просто накидать десяток ссылок в Evernote и забыть про них не получится. Надеюсь, заметки перестанут теряться среди сотен других и забываться, а я не буду лениться их делать.
Тема, с которой я хотел бы начать - это уровни изоляции транзакций, блокировки, и pessimistic/optimistic concurrency в SQL Server (нет, я не DBA и не планирую им быть). Attention! Все ниже перечисленное - относится не к книгам целиком, а только лишь к их соответствующим разделам по конкурентному доступу.


Ицик Бен-Ган. Microsoft SQL Server 2008/2012. Основы T-SQL
Принципиальных различий между книгами этого автора для 2008 и 2012 SQL Server немного. Для книг Ицика Бен-Гана характерен легкий, удобочитаемый стиль изложения. Различия уровней изоляции показаны на простейших примерах, для выполнения которых достаточно SSMS. В то же время, информация в книге дана скудная и неполная - например, не рассмотрен update lock. Пожалуй, с этой книжной серии можно начинать знакомство с concurrency в SQL Server, но для знакомых с темой людей она почти бесполезна.


Душан Петкович. Microsoft SQL Server 2012. Руководство для начинающих
В разы больше информации о блокировках. Примеры далеко не так информативны и понятны, в том числе из-за постоянного использования инструкции WAITFOR. В целом уровень изложения чуть выше.

Kalen Delaney. Microsoft SQL Server 2012 Internals
Если первые 2 книги - руководства для начинающих, то вот этот монументальный труд не стыдно прочитать разработчику любого уровня. Самое подробное и всеобъемлющее руководство из тех, что я видел. Держу оригинал книги под рукой в качестве справочника. Стиль изложения объемный и многословный.
Кому чтение книги по каким-то причинам не подходит, могу посоветовать статью от той же Kalen Delaney, содержание в целом соответствует стилю, выдержанному в книге. Там же я узнал, что у Delaney не так давно вышла отдельная книга, посвященная блокировкам в SQL Server:
При этом книжка бесплатная и доступна для скачивания в электронном виде! Да это просто праздник какой-то! Книга так же информативна, как и ее "старшая сестра", держу экземпляр под рукой.

И конечно, не будем забывать про официальную документацию.
TechNet: Locking and Row Versioning
Еще я планировал добавить ворох ссылок на различные мануалы по concurrency с codeproject, хабра и подобных сайтов. Отказался от этой идеи после очередного прочтения  Microsoft SQL Server 2012 Internals. Еще раз всем рекомендую почитать и напоминаю, что я кое-как сравнил между собой только посвященные конкурентному доступу материалы в этих книгах - в районе 1 главы из каждого источника. Удачи!


Комментариев нет:

Отправить комментарий