ho a che fare con delle stored procedure molto complesse che impiegano
tempi abnormi. Vorrei tracciare i tempi delle varie parti per capire
qual è il collo di bottiglia. E' possibile aggiungere del logging alle
stored procedures? E come faccio a loggare i timestamp?
Ciao e grazie in anticipo,
Giulio
--
OnAir:
http://www.giuliopetrucci.it
http://www.fujikomonamour.com
Ti conviene usare SQL Profiler, che serve proprio per queste cose.
Devi fare il trace usando il modello apposito per le SP (non ricordo
a memoria il nome, ma finisce per SPs :)
Se non hai, o non vuoi usare, SQL Profiler puoi calcolare i tempi
usando la funzione getdate() e datediff() e dopo li stampi o li
inserisci in una tabella che visualizzi a fine esecuzione.
-- codice non testato
begin
declare @t datetime
select @t = getdate()
-- prima operazione da misurare
-- qui stampa il numero di millisecondi, invece di stampare
-- si puo' inserire il dato in una tabella temporanea
print datediff( ms, @t, getdate() )
select @t = getdate()
-- seconda operazione da misurare
print datediff( ms, @t, getdate() )
end
ciao
Giacomo