数据库计算每个表所占空间和记录数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库计算每个表所占空间和记录数相关的知识,希望对你有一定的参考价值。
sql server
1 USE database_20160215 2 GO 3 4 SELECT 5 TableName = obj.name, 6 TotalRows = prt.rows, 7 [SpaceUsed(KB)] = SUM(alloc.used_pages)*8 8 FROM sys.objects obj 9 JOIN sys.indexes idx on obj.object_id = idx.object_id 10 JOIN sys.partitions prt on obj.object_id = prt.object_id 11 JOIN sys.allocation_units alloc on alloc.container_id = prt.partition_id 12 WHERE 13 obj.type = ‘U‘ AND idx.index_id IN (0, 1) 14 GROUP BY obj.name, prt.rows 15 ORDER BY TableName
/*这里面的单位是Byte*/ SELECT TABLE_NAME, DATA_LENGTH, INDEX_LENGTH, DATA_LENGTH + INDEX_LENGTH, TABLE_ROWS FROM information_schema. TABLES WHERE TABLE_SCHEMA = ‘database_20160215‘;
Oracle
/*查某一用户下的表*/ select SEGMENT_NAME, TABLESPACE_NAME, sum(BYTES) || ‘ Bytes‘ from USER_extents where SEGMENT_TYPE = ‘TABLE‘ group by SEGMENT_NAME, TABLESPACE_NAME /*查所有的表*/ select SEGMENT_NAME, TABLESPACE_NAME, sum(BYTES) || ‘ Bytes‘ from dba_extents where SEGMENT_TYPE = ‘TABLE‘ group by SEGMENT_NAME, TABLESPACE_NAME
以上是关于数据库计算每个表所占空间和记录数的主要内容,如果未能解决你的问题,请参考以下文章