Используйте таблицу для хранения времени начала и окончания, добавьте также идентификатор процесса. Затем используйте DATEDIFF (), чтобы вычислить прошедшее время.
CREATE TABLE Profiling(
spid smallint NOT NULL,
StartTime DATETIME2 NOT NULL,
EndTime DATETIME2
)
INSERT INTO Profiling(spid, StartTime)
SELECT @@SPID, CURRENT_TIMESTAMP
GO
-- your queries come here
-- .....
UPDATE Profiling
SET EndTime = CURRENT_TIMESTAMP
WHERE spid = @@SPID
GO
SELECT DATEDIFF(MS, startTime, EndTime) as MilliSeconds
FROM Profiling
WHERE spid = @@SPID
Время от времени усекайте таблицу, чтобы избежать столкновений спида.