Я перепроектирую некоторые из моих таблиц базы данных. У меня есть 2 ключа в одной таблице, которые можно использовать для запроса данных, и я хотел бы сравнить разницу в производительности между ними. Запросы с использованием более нового ключа выполняются медленнее, поэтому я хотел бы иметь метод, который я могу запустить после внесения изменений в схему для переоценки производительности запросов.
Я знаю о планах выполнения в MS SQL Server и SET STATISTICS IO, TIME ON
. Тем не менее, я хотел бы взять очень простое абсолютное время, которое дает мне реалистичные результаты. Учитывая, что каждый запрос занимает около 4 секунд, я должен выполнить один и тот же запрос несколько раз подряд в цикле. В настоящее время у меня есть:
USE [MyDb]
CHECKPOINT
DBCC FREESYSTEMCACHE('ALL')
<query>
Если бы я запустил вышеупомянутое в цикле через powershel sqlcmd
, было бы достаточно очистки кеша, чтобы очистить эффекты выполнения того же запроса непосредственно перед текущим запуском?