找到数据库ldf文件的大小

时间:2014-05-12 12:11:20

标签: c# sql-server

如何使用c#代码查找db的ldf文件大小?

我有办法使用sql查询找到ldf的位置。然后使用代码查找文件大小作为正常方式,但我想可能有潜在的系统权限问题,有没有办法找到更简单,更安全的大小?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以从sys.database_files或sys.master_files获取事务日志文件的位置和大小,然后使用SqlConnection,.NET框架中的SqlCommand编写SQL查询,使用ExecuteScalar或ExecuteReader运行它并获取请求的结果。< / p>

答案 1 :(得分:0)

尝试这样的事情:

SELECT 
    [serverName] = @@SERVERNAME,
    [databaseName] =  instance_name,
    dataSizeInKB = SUM(CASE WHEN counter_name = 'Data File(s) Size (KB)' THEN cntr_value END),
    logSizeInKB = SUM(CASE WHEN counter_name = 'Log File(s) Size (KB)' THEN cntr_value END)
FROM 
    sys.dm_os_performance_counters
WHERE 
    counter_name IN ('Data File(s) Size (KB)', 'Log File(s) Size (KB)')
    AND instance_name <> '_Total'
GROUP BY 
    instance_name;