5

我不确定它是否可能,但非常感谢任何帮助。

我正在寻找一个脚本,它可以生成 SQL Server 数据库的完整列表,其中包含 SQL Server 实例的每个数据库的以下详细信息:

  • 姓名
  • 尺寸
  • 特定应用程序或服务的利用率
  • 硬件利用率(CPU、内存、I/O 等)
4

3 回答 3

16

使用 EXEC sp_databases 可能会显示错误的数据库大小。这是一个不错的、可靠的查询,它将提供所有数据库名称、大小和状态,但不知道哪些应用程序正在使用这些数据库:

SELECT
    D.name,
    F.Name AS FileType,
    F.physical_name AS PhysicalFile,
    F.state_desc AS OnlineStatus,
    CAST((F.size*8)/1024 AS VARCHAR(26)) + ' MB' AS FileSize,
    CAST(F.size*8 AS VARCHAR(32)) + ' Bytes' as SizeInBytes
FROM 
    sys.master_files F
    INNER JOIN sys.databases D ON D.database_id = F.database_id
ORDER BY
    D.name
于 2014-12-10T00:45:05.273 回答
5

要仅获取一般信息(数据库名称、文件和大小),您可以成功运行“sp_databases”存储过程:

exec sp_databases

如果上述方法在 SQL Server 2000 中不起作用,您可以尝试以下方法:

select *
from sys.sysdatabases

但是您可以使用 SQLServer 附带的“SQL Profiler”获得更详细的跟踪和审计数据。

于 2012-05-29T12:06:09.203 回答
1

您可以将Nagios用于各种监控任务。Nagios 提供对 MSSQL 的完整监控——包括可用性、数据库和表大小、缓存比率以及其他关键指标。

于 2012-05-29T12:56:08.040 回答