@@IDLE (Transact-SQL)
Applies to:
SQL Server
Azure SQL Managed Instance
Returns the time that SQL Server has been idle since it was last started. The result is in CPU time increments, or "ticks," and is cumulative for all CPUs, so it may exceed the actual elapsed time. Multiply by @@TIMETICKS to convert to microseconds.
Note
If the time returned in @@CPU_BUSY, or @@IO_BUSY exceeds approximately 49 days of cumulative CPU time, you receive an arithmetic overflow warning. In that case, the value of @@CPU_BUSY, @@IO_BUSY and @@IDLE variables are not accurate.
Transact-SQL syntax conventions
Syntax
@@IDLE
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
Return Types
integer
Remarks
To display a report containing several SQL Server statistics, run sp_monitor.
Examples
The following example shows returning the number of milliseconds SQL Server was idle between the start time and the current time. To avoid arithmetic overflow when converting the value to microseconds, the example converts one of the values to the float
data type.
SELECT @@IDLE * CAST(@@TIMETICKS AS float) AS 'Idle microseconds',
GETDATE() AS 'as of';
Here is the result set.
I
Idle microseconds as of
----------------- ----------------------
8199934 12/5/2006 10:23:00 AM
See Also
@@CPU_BUSY (Transact-SQL)
sp_monitor (Transact-SQL)
@@IO_BUSY (Transact-SQL)
System Statistical Functions (Transact-SQL)