データベースで使用しているデータベースの容量を計算します。私はsp_spacefiles
またはクエリsys.databases
テーブルを使用することができますが、それは私に各データベースのための別々の結果を与えるだろうと私はExcelシートにコピーし、そこから合計を計算する必要があります。SQL Serverのすべてのデータベースサイズの合計を取得する
T-SQLで直接行う方法はありますか?
ありがとうございました。
データベースで使用しているデータベースの容量を計算します。私はsp_spacefiles
またはクエリsys.databases
テーブルを使用することができますが、それは私に各データベースのための別々の結果を与えるだろうと私はExcelシートにコピーし、そこから合計を計算する必要があります。SQL Serverのすべてのデータベースサイズの合計を取得する
T-SQLで直接行う方法はありますか?
ありがとうございました。
あなたはmaster.sys.master_files
を照会することができます
SELECT CONVERT(DECIMAL(10,2),(SUM(size * 8.00)/1024.00/1024.00)) As UsedSpace
FROM master.sys.master_files
これは、あなたGBの総を与えるだろう。
Sys.Master_files
は、すべてのDBのすべてのファイルを一覧表示するサーバー全体のビューです。これはSQL Server 2005以降で利用可能です。
ここで私がSQLServerCentral.comで見つけた回答です。このページには、さまざまなユーザーによって提供される2つの異なるスクリプトがあります。おそらくそれらのうちの1つが、あなたが探しているものを提供するでしょう。ここで
http://www.sqlservercentral.com/Forums/Topic670489-146-1.aspx
MANU-Jからのスクリプトのいずれかです。
Create TABLE #db_file_information(
fileid integer
, theFileGroup integer
, Total_Extents integer
, Used_Extents integer
, db varchar(30)
, file_Path_name varchar(300))
-- Get the size of the datafiles
insert into #db_file_information
(fileid
, theFileGroup
, Total_Extents
, Used_Extents
, db
, file_Path_name)
exec sp_MSForEachDB 'Use ?; DBCC showfilestats'
-- add two columns to the temp table
alter table #db_file_information add PercentFree as
((Total_Extents-Used_Extents)*100/(Total_extents))
alter table #db_file_information add TotalSpace_MB as
((Total_Extents*64)/1024)
alter table #db_file_information add UsedSpace_MB as
((Used_Extents*64)/1024)
alter table #db_file_information add FreeSpace_MB as
((Total_Extents*64)/1024-(Used_Extents*64)/1024)
select * from #db_file_information
drop table #db_file_information
に我々は一般的に、リンクだけの答えを阻止しています。あなたの答えのテキストに抜粋やいくつかの例を入れてください。 – JNK
申し訳ありません。スクリプトの1つを含むように編集されました。 –
sp_MSforeachdbを注意してください。すべてのデータベースで常に動作するとは限りません(http://sqlblog.com/blogs/aaron_bertrand/archive/2010/12/29/a-more-reliable-and-more-flexible-sp-msforeachdbのコメントを参照してください)。 .aspx)。私はここからコピーすることを歓迎しています。http://www.mssqltips.com/tip.asp?tip=2201 –
念のために誰かがファイルごとの計算を必要とします:
select physical_name, size,
CONVERT(DECIMAL(10,2),(size * 8.00)/1024.00) As UsedSpace
from master.sys.master_files
order by physical_name
リンクが死亡した場合の答えは無用であるので、結果はメガバイト
これはまさに私が探していたものです。ありがとうございます。 SQL Server 2000の場合、@ jennifer-sが提供しているコードを使用する必要がありますね。 – olmed0
ありがとうございます。シンプルで便利です。 –