sql serverのテーブルとインデックスのストレージサイズを取得する
2023-11-06 04:21:39
質問
私はデータベース内のすべてのテーブルのテーブルデータとインデックススペースを取得したいです。
Table Name Data Space Index Space
-------------------------------------------------------
どうすればこのような結果になるのでしょうか?
どのように解決するのですか?
このクエリは、クラスタ化インデックス、ヒープ、およびすべての非クラスタ化インデックスなど、テーブルが占有する総サイズを一覧表示します。
SELECT
s.Name AS SchemaName,
t.NAME AS TableName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
sys.tables t
INNER JOIN
sys.schemas s ON s.schema_id = t.schema_id
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%' -- filter out system tables for diagramming
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, s.Name, p.Rows
ORDER BY
s.Name, t.Name
テーブル空間とインデックス空間を分離したい場合は、テーブル空間とインデックス空間の間に
AND i.index_id IN (0,1)
を使用する必要があります (
index_id = 0
はヒープ空間です。
index_id = 1
はクラスタ化されたインデックス(データページ)のサイズであり
AND i.index_id > 1
はインデックスのみのスペース
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] データベース内の全テーブルのサイズを取得する
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決策:ユーザー root で localhost:3306 にある MySQL に接続できませんでした。
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] SQL Server の VARCHAR/NVARCHAR 文字列に改行を挿入する方法
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] NOT IN vs NOT EXISTS
-
[解決済み] SQL Server 2008を使用してIDENTITY_INSERTをオン/オフする方法は?
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] SQL ServerでINSERT INTOとしてデータをエクスポートする
-
[解決済み] SQLサーバーで行を列に効率的に変換する