Сравнение производительности хранимых процедур ex и новой версии - PullRequest
3 голосов
/ 22 февраля 2010

Я создал два новых индекса для таблиц, которые используются в sp. Новые результаты показывают, что со стороны проблемных объединений сканы конвертируются в поиск. Я думаю, что поиск лучше, чем операции сканирования. С другой стороны, время занимает более или менее ту же продолжительность, что и без новых индексов.

Так ясно, как я могу быть доволен, прежде чем запустить мою новую версию sp.

Например, изменение параметров sp может помочь мне узнать, быстрее ли новая версия, чем старая, или что еще?

С уважением Б.К.

1 Ответ

5 голосов
/ 22 февраля 2010

Несколько вещей, которые нужно сделать:
1) Убедитесь, что вы сравниваете производительность справедливо, очищая кэш данных и плана выполнения после каждого запуска теста. Вы можете очистить их, используя (рекомендуется делать это только в вашей среде разработки / тестирования):

CHECKPOINT -- force dirty pages in the buffer to be written to disk
DBCC DROPCLEANBUFFERS -- clear the data cache
DBCC FREEPROCCACHE -- clear the execution plan cache

2) Запустите SQL Profiler, чтобы записать Чтение / Запись / Процессор / Продолжительность для каждой ситуации (с индексами или без них). Это даст вам ряд метрик для сравнения (т. Е. Только с временем, показанным в SSMS).
Edit: Чтобы запустить трассировку SQL Profiler, в Management Studio выберите Инструменты -> SQL Server Profiler. При появлении запроса укажите сервер базы данных для запуска трассировки. Появится диалоговое окно «Свойства трассировки» - вы можете просто нажать «Выполнить», чтобы запустить трассировку по умолчанию. Затем просто выполните свою хранимую процедуру и увидите, что она появляется в SQL Profiler - вместе с ней будет показана продолжительность, количество операций чтения и т. Д.

3) Тестируйте с гораздо большими объемами данных, чем у вас уже есть. Если вы тестируете с небольшими объемами данных, то разницу часто трудно увидеть только по длительности.

Я недавно написал здесь о том, как честно протестировать производительность различных вариантов запроса, что более подробно описывает, как я это делаю.

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