从t-sql中了解sql server服务运行了多长时间

Nic*_*ias 12 sql-server sql-server-2005

我想如果它可以从sql server里面运行多久sql server一直在运行.

想与未使用的索引中的一个DMV一起使用它,但是每次sql server加载时都会重置set,所以我想知道它们有多么有用.

Aak*_*shM 20

SELECT
    login_time
FROM
    sys.dm_exec_sessions
WHERE
    session_id = 1
Run Code Online (Sandbox Code Playgroud)

datetime在服务器启动时为您提供.

  • 这是确切的时间:SELECT sqlserver_start_time FROM sys.dm_os_sys_info。该值往往比 sys.dm_exec_sessions 方法稍早。 (2认同)

kev*_*ers 5

要以编程方式获取它,您可以运行此脚本。它检查 tempdb 的创建时间,因为每次 Sql Server 启动时 tempdb 都会重新初始化。

SELECT create_date 
FROM sys.databases 
WHERE name = 'tempdb'
Run Code Online (Sandbox Code Playgroud)

为了更直观,您可以运行下面的脚本,它会告诉您 Sql Server 已经运行了多少天和小时。分钟和秒信息将被截断。如果您需要,请修改脚本以自行获取。

SELECT 'Sql Server Service has been running for about '
+ CAST((DATEDIFF(hh, create_date, GETDATE()))/24 AS varchar(3)) + ' days and '
+ CAST((DATEDIFF(hh, create_date, GETDATE())) % 24 AS varchar(2)) + ' hours'
FROM sys.databases 
WHERE name = 'tempdb'
Run Code Online (Sandbox Code Playgroud)

来源:SQL Server 运行了多长时间