У мене є 2 збережені процедури, де друга збережена процедура є вдосконаленням першої.
Я намагаюся точно оцінити, наскільки це поліпшення.
1 / Вимірювання clock time
, здається, не є варіантом, оскільки я отримую різні терміни виконання. Ще гірше, іноді (рідко, але трапляється) час виконання другої збереженої процедури більший, ніж час виконання першої процедури (я думаю, через завантаженість сервера на той момент).
2 / Include client statistics
також дає різні результати.
3 / DBCC DROPCLEANBUFFERS
, DBCC FREEPROCCACHE
хороші, але та сама історія ...
4 / SET STATISTICS IO ON
може бути варіантом, але як я можу отримати загальну оцінку, оскільки в моїх збережених процедурах є багато таблиць?
5 / також Include actual execution plan
може бути варіантом. Я отримую estimated subtreecost
0,3253 за першу збережену процедуру і 0,3079 за другу. Чи можу я сказати, що друга збережена процедура на 6% швидша (= 0,3253 / 0,3079)?
6 / Використання поля "Читання" від SQL Server Profiler?
Тож як я можу сказати, що друга збережена процедура на x% швидша, ніж перша процедура, незалежно від умов виконання (завантаженість сервера, сервера, на якому виконуються ці збережені процедури тощо)?
Якщо це неможливо, як я можу довести, що друга збережена процедура має кращий час виконання, ніж перша збережена процедура?