суббота, 1 мая 2010 г.

MS-2784: Tuning and optimizing database queries using Microsoft SQL Server 2005

Довелось проходить данный тренинг (3 дня), в компании Softline. Ожидал несколько большего.

Из полезного для себя узнал как совмещать статистику Windows Perfomance Monitor и SQL Server Profiler.Стали после тренинга с коллегами подумывать о партицировании некоторых исторических таблиц.

Не понравились задания с рефакторингом курсоров. Сами рекомендации полезные, но примеры явно надуманные. Если после рефакторинга курсор может превратиться в банальный SELECT, то как вообще могла в голову прийти идея использовать курсор?

Последнее задание, где нужно было проанализировать базу на предмет блокировок, и переписать код, чтобы их уменьшить. Решение предлагаемое в книжке я так не понял. Какой может быть выигрыш, если перед стартом транзакции явно указывать  READ COMMITED (уровень изоляции по умолчанию), и вместо автокомита транзакций, стартовать и подтверждать их явно? Нет ну может небольшой выигрыш и будет, но врядли он будет существенным.

1 комментарий:

and85 комментирует...

Отвечаю на собственный вопрос по поводу выиграша от Read Commited год спустя:)
Оказывается, что в некоторых случаях SQL Server, если ему явно не указывать уровень изоляции транзакции, может изменять уровень изоляии по умолчанию.

Природа этого явления мне не ясна.
Конечно, звучит несколько бредово:) Оптимизатор сам решает какой уровень изоляции использовать. Наткулся пару дней назад, абсолютно случайно в каком-то буржуйском блоге. Ссылку найти не могу.