Школа профессионалов. Сергей Михалев с лекцией “Оптимизация SQL Server запросов: индексы”

Наступил новый год, каникулы и выходные закончились. За окном стабильно держится морозец….
Но это не повод скучать и расслабляться 🙂 В нашей  “Школе профессионалов” начинается  подготовка к новому учебному циклу 😉

Сергей Михалев проведет лекцию “Оптимизация SQL Server запросов: индексы”.

Когда: 7 февраля (вторник) с 12 до 13 ч.
Где: “Колизей” (5 эт).

Краткий анонс:

1) Базовые понятия
2) Кластерные индексы
3) Некластерные индексы
4) Примеры

“Абсолютное большинство запросов так или иначе оптимизируется через индексы, и только об этом мы и будем говорить. Более того в конце лекции мы будем оптимизировать реальный пример в реальном времени”.


Школа профессионалов: Сергей Михалев с обзором объектов схемы SQL Server в рамках цикла «Оптимизация запросов к SQL Server».

Обращаем ваше внимание на то, что 31 октября в понедельник  ожидается не только праздник Хеллоуин, но и повторная первая лекция Сергей Михалева из цикла “Оптимизация запросов к SQL Server” на тему “Обзор объектов схемы SQL Server“.
 
Пройдет с 12 до 13 в “Колизее”.  
Необходима предварительная регистрация, места еще есть. 


Цель: Сделать обзор наиболее интересных с точки зрения оптимизации объектов схемы базы данных.
План лекции:
1) Ограничения (Constraints)
2) Вычислимые столбцы (Computed Columns)
3) Индексированные представления (Clustered Views)
Удачных выходных!

Трассировка данных в SQL Server Часть 2: Архитектура SQL Trace

В прошлый раз мы поговорили об основных понятиях и об иерархии данных. Теперь самое время погрузиться во внутреннее устройство SQL Trace, а точнее познакомиться с архитектурой этого компонента и узнать, как он взаимодействует с другими элементами SQL Server. Но прежде всего давайте рассмотрим еще одно новое понятие, которые будет довольно часто встречаться дальше в статье.

Трейс – это упорядоченный список событий, отправленных компонентами SQL Server по завершении своих задач. Каждое событие в этом списке следует за другим в определенном порядке, формируемом на основе времени появления событий. Тем самым сохраняется цепочка действий, выполненных внутри SQL Server.

Схематично SQL Trace можно представить следующим образом:

Читать далее…


Тестирование производительности запросов (часть II)

Итак, в первой статье мы проверили, что функция get_product() функционально работает правильно. Далее мы начали готовиться к тестированию производительности – создали тестовое окружение и убедились, что оно максимально близко соответствует нашему боевому. Наш следующий шаг, создать тесты для проверки производительности, т.е. нам нужны запросы, с помощью которых мы будем тестировать скорость работы нашей функции. И тут у нас есть 2 варианта:

  1. Сгенерировать тестовые запросы
  2. Собрать трейс с реальными запросами

Подготовка к тестированию производительности запросов (часть I)

Что же мы должны сделать, чтобы чувствовать себя уверенно при оптимизации базы данных? В прошлой статье мы начали с функционального тестирования (Чувство уверенности при оптимизации запросов (часть I)), и теперь мы точно уверенны, что, по крайней мере, с этой точки зрения ничего не сломаем. Но самое главное мы должны убедиться, что наше новое решение действительно работает быстрее. Собрать метрики, время выполнения до и после оптимизации, провести сравнительный анализ и выяснить удовлетворяет ли нас новый оптимизированный вариант или нет.

Очевиден тот факт, что для проведения грамотного тестирования производительности, нам сначала нужно хорошо подготовится. И, по крайней мере, выполнить 3 подготовительные процедуры, каждой из которых я посвящу по статье.

Читать далее…


Чувство уверенности при оптимизации запросов (часть I)

Это моя первая попытка поделится своими знаниями на просторах интернета. Будем надеяться, она не получится “комом”. В последние несколько лет я плотно занимаюсь оптимизацией enterprise web приложения, а так как нашим самым узким местом является база данных (Sql Server 2005 – 2008), я думаю, мне есть о чем рассказать. Этот блог в основном будет посвящен оптимизации различных аспектов приложений и баз данных на Sql Server в частности. Постараюсь в большей степени писать о каких-то именно практических применениях, о реальном опыте, исследованиях, а не о замечательных, с точки зрения теории, новых функциональностях.

Долго думал с чего же все-таки стоит начать, чему посвятить свою первую запись в этом блоге. Решил, воспользуюсь примером TDD – начну с тестов.