Quando SQL Server va troppo bene...

...potreste avere un errore nella visualizzazione dei report della Performance Dashboard. Questo è dovuto al fatto che i report internamente utilizzano la funzione DATEDIFF(ms, ..., ...) per capire da quanto tempo è attivo SQL Server.

Dato che il valore viene memorizzata in un INT, se superate i 24 giorni di online continuo otterrete un error di overflow.

Dovete quindi andare nella stored procedure usp_Main_GetSessionInfo e modificare la seguente riga

sum(convert(bigint, datediff(ms, login_time, getdate()))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

in

sum(convert(bigint, CAST ( DATEDIFF ( minute, login_time, getdate()) AS BIGINT) * 60000 + DATEDIFF ( millisecond, DATEADD (minute, DATEDIFF ( minute, login_time, getdate() ), login_time ),getdate()))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

e tutto riprenderà a funzionare correttamente.

Credits: http://blogs.msdn.com/sqlrem/archive/2007/03/07/Performance-Dashboard-Reports-Now-Available.aspx

Published mercoledì 30 gennaio 2008 16.23 by dmauri

Comments

# re: Quando SQL Server va troppo bene...

sabato 1 marzo 2008 16.26 by Ribi86

Per la serie "io l'avevo detto":

community.ugiss.org/.../sql-server-performance-dashboard-reports.aspx

# re: Quando SQL Server va troppo bene...

sabato 1 marzo 2008 18.34 by dmauri

Azz me l'ero perso :-)

# re: Quando SQL Server va troppo bene...

lunedì 3 marzo 2008 22.10 by Ribi86

Tranquillo.

Bella sessione giovedì. Dev'essere difficile davanti a tutta quella gente, complimenti! (te li ho fatti di persona, ma ti stavi abbuffando all'apertivo...)

# re: Quando SQL Server va troppo bene...

martedì 4 marzo 2008 7.33 by dmauri

ehehehehehh come potevo resistere a tutto quel ben di Dio?!?! :-)