如何查詢數(shù)據(jù)庫中每個表的大小

查詢數(shù)據(jù)庫中每個表的大小可以通過不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來實現(xiàn)。以下是一些常見數(shù)據(jù)庫系統(tǒng)中查詢表大小的常用方法: MySQL```sqlSELECT table...
查詢數(shù)據(jù)庫中每個表的大小可以通過不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來實現(xiàn)。以下是一些常見數(shù)據(jù)庫系統(tǒng)中查詢表大小的常用方法:
MySQL
```sql
SELECT table_schema, table_name, round(((data_length + index_length) / 1024 / 1024), 2) AS `Size (MB)`
FROM information_schema.TABLES
WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
ORDER BY `Size (MB)` DESC;
```
PostgreSQL
```sql
SELECT
nspname AS "schema",
relname AS "table",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM
pg_catalog.pg_class C
LEFT JOIN
pg_catalog.pg_namespace N ON N.oid = C.relnamespace
WHERE
nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND c.relname !~ 'pg_'
ORDER BY
pg_total_relation_size(C.oid) DESC;
```
SQL Server
```sql
SELECT
SCHEMA_NAME(t.schema_id) AS SchemaName,
t.name AS TableName,
SUM(a.total_pages) 8 AS TotalSpaceKB
FROM
sys.tables t
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.type = 'U'
GROUP BY
t.schema_id, t.name
ORDER BY
SUM(a.total_pages) 8 DESC;
```
Oracle
```sql
SELECT
table_name,
round(sum(bytes)/1024/1024, 2) as "Size MB"
FROM
user_tables
GROUP BY
table_name
ORDER BY
"Size MB" DESC;
```
請注意,以上SQL查詢僅適用于特定數(shù)據(jù)庫的版本,并且可能需要根據(jù)你的數(shù)據(jù)庫版本和配置進行調(diào)整。在執(zhí)行這些查詢之前,請確保你有足夠的權(quán)限來訪問`information_schema`或`sys`等系統(tǒng)表,因為這些表包含了數(shù)據(jù)庫的元數(shù)據(jù)信息。
本文鏈接:http:///bian/399332.html