Сравнительный анализ сложных запросов - PullRequest
0 голосов
/ 25 мая 2018

У меня есть два запроса, которые выполняют ту же, умеренно сложную задачу.Один присоединяется к подзапросам, другой использует переменную таблицы.Я хотел бы выполнить тестирование таким образом, чтобы увидеть общее время, затрачиваемое на повторное выполнение.

Однако у меня есть несколько проблем с простым методом, который я нашел в Интернете:

DECLARE variables
SET STATISTICS TIME ON

/* Benchmark query 1 */
/* Benchmark query 2 */

SET STATISTICS TIME OFF

Iрасширен это с помощью WHILE -loops.

Проблемы:

  • Таймер ставит отметку в каждом цикле (выполнении запроса) и каждой подпрограмме ', а не в целом операторе while.
  • Временная таблица со строкой, содержащей столбец UNIQUE, выдает ошибки со второй итерации вперед, когда я снова вставляю те же элементы.
  • SSMS показывает каждый набор результатов в окне результатов, котороеэто не точка эталонного теста.
  • Большинство периодов времени около 0 мс указывают на то, что происходит некоторое кэширование. (возможно, из-за того, что многие подэтапы запроса табличной переменной былирегистрируется один за другим)
  • Переменные, объявленные в запросах, при повторном объявлении выдают ошибку.

Когда я начал изучать бенчмаркинг, я предполагал, что будет простой способизвлекайте запросы из файла несколько раз и время выполнения.Единственной вещью, которую я нашел, был SQLCmd, но это не совсем то, что мне было нужно, я бы предпочел делать все это внутри SSMS.

Итак, возможен ли описанный выше процесс?Если так, что мне нужно?Если нет, то каков стандартный способ сравнения более сложных запросов, чем один SELECT?

. Любые указатели будут с благодарностью, так как я довольно новичок в этой игре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...