186

データベースのサイズのみを取得するために SQL サーバーにクエリを実行するにはどうすればよいですか?

私はこれを使用しました:

use "MY_DB"
exec sp_spaceused

私はこれを得た :

database_name   database_size   unallocated space
My_DB           17899.13 MB 5309.39 MB

必要のないいくつかの列が返されます。このストアド プロシージャから database_size 列を選択するトリックがあるのではないでしょうか?

私もこのコードを試しました:

SELECT DB_NAME(database_id) AS DatabaseName,
       Name AS Logical_Name,
       Physical_Name,
       (size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'

それは私にこの結果を与えます:

DatabaseName    Logical_Name    Physical_Name                    SizeMB
MY_DB           MY_DB           D:\MSSQL\Data\MY_DB.mdf          10613
MY_DB           MY_DB_log       D:\MSSQL\Data\MY_DB.ldf          7286

だから私はこれを書いた:

SELECT SUM(SizeMB)
FROM (
    SELECT DB_NAME(database_id) AS DatabaseName,
           Name AS Logical_Name,
           Physical_Name,
           (size * 8) / 1024 SizeMB
    FROM sys.master_files
    WHERE DB_NAME(database_id) = 'MY_DB'
) AS TEMP

私が得た: 1183

それでうまくいきますが、これを取得する適切な方法はありますか?

4

12 に答える 12