2014-05-12 39 views
0

如何使用c#代碼找到db的ldf文件大小?找到數據庫ldf文件的大小

我有一種方法可以使用sql查詢找到ldf的位置。然後使用代碼查找文件大小作爲正常的方式,但我想可能有潛在的系統權限問題,有沒有辦法找到更簡單和更安全的大小?

謝謝。

+3

你做出什麼樣的努力? –

+0

FileInfo.length – samuelesque

+0

使用T-SQL查詢檢索ldf位置。然後獲取文件大小,但我認爲這不是一個好方法。 – Max

回答

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; 
0

您可以從sys.database_files或sys.master_files中獲取事務日誌文件的位置和大小,然後使用.NET框架中的SqlConnection,SqlCommand編寫SQL查詢,使用ExecuteScalar或ExecuteReader運行它並獲取請求的結果。