SQL Server如何查看SQL Server服务启动时间
2023-01-11 10:11 潇湘隐者 阅读(1390) 评论(0) 编辑 收藏 举报SQL Server数据库中,我们想查看SQL Server实例的启动时间以及SQL Server Agent服务的启动时间,有哪一些方法和技巧呢? 下面总结一些查看SQL Server实例和SQL Server Agent服务启动时间的方法。
查看SQL Server实例启动时间
如果要查询SQL Server实例的启动时间,我们可以使用下面多种方法去查看。有些方法有条件限制,仅供参考。
方法1:
通过查看系统动态管理视图sys.dm_server_services, 这个视图中,有个字段last_startup_time表示上次启动服务的日期和时间。
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实例的启动时间
--系统数据库tempdb创建的时间
SELECT CREATE_DATE AS StartDateTime
FROM sys.databases
WHERE NAME='tempdb'
方法3:
通过查看系统兼容性视图master..sysprocesses获取SQL Server服务启动时间,会话ID为的1会话是SQL Server服务启动时创建的。
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上次启动时的日期和时间
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服务启动的时间。
SELECT start_time AS StartDateTime
FROM sys.dm_exec_requests WHERE session_id = 1
方法6:
通过查看sys.traces 目录视图。该目录视图包含当前在系统中运行的跟踪信息。
SELECT start_time AS StartDateTime
FROM sys.traces
WHERE is_default=1;
方法7:
这个方法仅供参考,它能查询出SQL Server实例启动时间是有条件的,除非从数据库实例启动后,你的错误日志就没有变动过,如果错误日志文件被删除或覆盖,这个脚本根本无法查出数据。当然,如果SQL Server启动时的错误日志还在的话,你也可以从错误日志中找出SQL Server实例启动的时间。
use master
go
EXEC xp_ReadErrorLog 0, 1, N'SQL',N'Starting'
查看SQL Server Agent的启动时间
方法1:
通过查看系统动态管理视图sys.dm_server_services, 这个时视图中,有个字段last_startup_time表示上次启动服务的日期和时间。
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 );
注意,有些SQL Server环境由于没有更新补丁或Bug缘故,SQL Server 代理 (MSSQLSERVER)的last_startup_time总是为null,那么这种方法可能不能找出SQL Server Agent服务的启动时间。如下图所示:
方法2:
SELECT program_name
,login_time AS SQLAgent_StartTime
FROM sys.sysprocesses
WHERE program_name LIKE 'SQLAgent - Generic Refresher%';

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇
2020-01-11 为什么你SQL Server中SQL日期转换出错了呢?
2019-01-11 SQL Server一致性错误修复案例总结
2015-01-11 Linux命令学习总结:shutdown