1. ホーム
  2. sql-server

[解決済み] SQL Server のテーブルとインデックスのサイズ

2023-02-25 01:03:18

質問

SQl Server のテーブルとインデックスのサイズを表示するのに役立つ SQL クエリを作成できますか?

どのようにSQL Serverはテーブル/インデックスのメモリ使用量を維持しますか?

どのように解決するのですか?

この exec sp_spaceused は、データベース全体のサマリーを表示します。foreachtableソリューションは、テーブルごとに1つの結果セットを生成します。これは、テーブルが多すぎる場合、SSMSが処理できない可能性があります。

私は スクリプトを作成しました。 を介してテーブル情報を収集する sp_spaceused でテーブルの情報を収集し、サイズ順に並べた一つのレコードセットで要約を表示します。

create table #t
(
  name nvarchar(128),
  rows varchar(50),
  reserved varchar(50),
  data varchar(50),
  index_size varchar(50),
  unused varchar(50)
)

declare @id nvarchar(128)
declare c cursor for
select '[' + sc.name + '].[' + s.name + ']' FROM sysobjects s INNER JOIN sys.schemas sc ON s.uid = sc.schema_id where s.xtype='U'

open c
fetch c into @id

while @@fetch_status = 0 begin

  insert into #t
  exec sp_spaceused @id

  fetch c into @id
end

close c
deallocate c

select * from #t
order by convert(int, substring(data, 1, len(data)-3)) desc

drop table #t