У меня большой запрос, и я пытаюсь улучшить его по частям, однако из-за механизма кэширования и простоты кодов t-sql у меня нет надежной среды для тестирования скоростей. Все запросы о скоростях, которые я пытаюсь улучшить, длятся около 1 или 2 секунд, поэтому я не вижу четкой разницы. И создание фиктивных данных для каждого сравнения занимает слишком много времени. Что вы предлагаете мне сделать? Я использую базу данных своей компании, поэтому каждый раз удаление кеша может быть вредным.
Edit:
Прочитав все комментарии, я немного поработал, и у меня появилась идея. Но, глядя на все эти значения в статистике, это именно то, что я хочу?
Вот проблемы, с которыми я столкнулся:
План выполнения: Сначала я выполнил несколько запросов и посмотрел на План выполнения, вверху - Стоимость запроса (относительно пакета). Я не смог получить значение, отличное от 0,00%. Даже мой запрос длится более 1 минуты. Единственное, что я получаю, это 0,00%. А под графиками все значения 0%
Статистика БД . Сейчас я тестирую два запроса. Одним из них является
SELECT * FROM My_TABLE
/ *
ГДЕ
my_primarykey LIKE "% ht_atk%"
* /
И второй вариант - бесплатная версия с комментариями.
SELECT * FROM My_TABLE
ГДЕ
my_primarykey LIKE '% ht_atk%'
Вот мои результаты из БД Статистика, первый запрос:.
Application Profile Statistics
Timer resolution (milliseconds) 0 0
Number of INSERT, UPDATE, DELETE statements 0 0
Rows effected by INSERT, UPDATE, DELETE statements 0 0
Number of SELECT statements 2 2
Rows effected by SELECT statements 16387 15748,4
Number of user transactions 7 6,93182
Average fetch time 0 0
Cumulative fetch time 0 0
Number of fetches 0 0
Number of open statement handles 0 0
Max number of opened statement handles 0 0
Cumulative number of statement handles 0 0
Network Statistics
Number of server roundtrips 3 3
Number of TDS packets sent 3 3
Number of TDS packets received 252 242,545
Number of bytes sent 868 861,091
Number of bytes received 1,01917e+006 981160
Time Statistics
Cumulative client processing time 0 0,204545
Cumulative wait time on server replies 25 10,0455
Второй запрос:
Application Profile Statistics
Timer resolution (milliseconds) 0 0
Number of INSERT, UPDATE, DELETE statements 0 0
Rows effected by INSERT, UPDATE, DELETE statements 0 0
Number of SELECT statements 2 2
Rows effected by SELECT statements 14982 15731,3
Number of user transactions 5 6,88889
Average fetch time 0 0
Cumulative fetch time 0 0
Number of fetches 0 0
Number of open statement handles 0 0
Max number of opened statement handles 0 0
Cumulative number of statement handles 0 0
Network Statistics
Number of server roundtrips 3 3
Number of TDS packets sent 3 3
Number of TDS packets received 230 242,267
Number of bytes sent 752 858,667
Number of bytes received 932387 980076
Time Statistics
Cumulative client processing time 1 0,222222
Cumulative wait time on server replies 8 10
Каждый раз, когда я выполняю, значения меняются случайным образом, и я не могу понять, какой запрос быстрее
Наконец, когда я это сделаю:
УСТАНОВИТЬ ВРЕМЯ СТАТИСТИКИ
НАСТРОЙКА СТАТИСТИКИ IO ON
Для обоих запросов результаты одинаковы.
Таблица 'my_TABLE'. Сканирование 1, логическое чтение 682, физическое чтение 0, чтение с опережением 0.
Итак, я снова не смог сравнить два запроса. как интерпретировать результаты? Я смотрю в неправильном месте. Как я могу сравнить эти два простых запроса выше?