合 SQL Server如何查看数据库实例启动时间
Tags: MSSQLSQL Server启动时间
SQL Server数据库中,我们想查看SQL Server实例的启动时间以及SQL Server Agent服务的启动时间,有哪一些方法和技巧呢?下面总结一些查看SQL Server实例和SQL Server Agent服务启动时间的方法。
查看SQL Server实例启动时间
如果要查询SQL Server实例的启动时间,我们可以使用下面多种方法去查看。有些方法有条件限制,仅供参考。
方法1:
通过查看系统动态管理视图sys.dm_server_services, 这个视图中,有个字段last_startup_time表示上次启动服务的日期和时间。
1 2 3 4 5 6 7 8 9 10 11 | SELECT servicename , process_id , startup_type_desc , status_desc , last_startup_time , service_account , is_clustered , cluster_nodename , [filename] FROM sys.dm_server_services WITH ( NOLOCK ) OPTION ( RECOMPILE ); |
方法2:
SQL Server服务每次启动的时候,都会重新创建tempdb数据库,所以可以根据tempdb数据库的创建时间来判断SQL Server实例的启动时间
1 2 3 4 | --系统数据库tempdb创建的时间 SELECT CREATE_DATE AS StartDateTime FROM sys.databases WHERE NAME='tempdb' |
方法3:
通过查看系统兼容性视图master..sysprocesses获取SQL Server服务启动时间,会话ID为的1会话是SQL Server服务启动时创建的。
1 2 | SELECT CONVERT(VARCHAR(30), LOGIN_TIME,120) AS StartDateTime FROM master..sysprocesses WHERE spid=1; |
方法4:
通过查看DMV视图sys.dm_os_sys_info获取, 这个动态管理视图中的字段sqlserver_start_time 表示SQL Server上次启动时的日期和时间
1 2 | SELECT sqlserver_start_time AS StartDateTime FROM sys.dm_os_sys_info |
方法5:
通过查看DMV sys.dm_exec_requests获取 。会话ID为1的会话是SQL Server启动时创建的。它的start_time(请求到达时的时间戳)可以判定SQL Server服务启动的时间。
1 2 | SELECT start_time AS StartDateTime FROM sys.dm_exec_requests WHERE session_id = 1 |