tutorial - t-sql教程




通过特定应用程序或服务列出SQL Server数据库,大小和利用率的脚本 (2)

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

exec sp_databases

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

select *
from sys.sysdatabases

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

我不确定它是否可能,但真的很感谢任何帮助。

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

  • 名称
  • 尺寸
  • 由特定的应用程序或服务使用
  • 硬件利用率(CPU,内存,I / O等)

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

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




sql-server-2008-r2