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

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

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

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

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


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

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

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

Создание производной таблицы с помощью table value constructor

Многим из нас приходилось сталкиваться в каждодневной работе с потребностью создавать производные таблицы на основе констант, будь то числа, строки или даты. Сегодня мне бы хотелось рассмотреть варианты построения таких таблиц и рассказать о новинке в SQL Server 2008 – table value constructor (конструктор табличных значений) – которая позволяет делать это еще красивее и оптимальнее в плане производительности. Читать далее…