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

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

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

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

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


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

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

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

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

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

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