一.sp_spaceused 可看到数据库空间包括日志(对应数据库)
打开Sql Advantage 对话框——输入sp_spaceused(上边数据库选择要查的数据库)或直接
use your_db_name
go
sp_spaceused
go
运行!出现如下信息
Database name:数据库名称
Datebase Size:数据库空间总大小
Reserved:已分配空间
data数据:已分配空间中数据占用空间大小
index_size索引:已分配空间中index_size索引占用空间大小
unused:为已分配空间中未使用空间大小
计算关系:
reserved(已分配空间)=data+index_size+unused
剩余空间= Datebase Size(总空间)—已分配空间(resrved)
二.sp_helpdb db_name 可看到数据库占用的数据库设备device的空间信息(对应数据库设备和数据库)
打开Sql Advantage 对话框——输入sp_s helpdb db local(local为要看的数据库名字如不输入则显示所有数据库)
运行!显示如下信息:
(一).数据库方面
1. name:数据库名字
2. db_size:数据库空间大小
3. owner:数据库所有者
4. created:数据库创建时间
5. status:状态
(二).数据库设备方面
1. device_fragments:数据库设备名称
2. size:数据库占用数据库设备的空间大小 单位MB
3. usage:用法 用途
4. created:数据库占用的数据库设备的空间的创建时间
5. free kbytes :数据库占用的数据库设备的剩余空间 单位KB
6. log only free
kbytes:数据库日志设备中日志剩余空间 单位KB
注意:由于数据库创建后不一定全部占用数据库设备的所有空间,可以在以后通过增加的方法占用设备空间,因此每增加一次就会有一条数据库设备信息
计算关系:
剩余空间=所有free Kbytes(剩余KB)相加+log only
free Kbytes
数据库占用数据库设备总空间(size)=size1+size2+……..(所有相加)=数据库总空间(db_size)=
reserved(已分配空间)+剩余空间
free Kbytes(剩余KB)相加+log only free Kbytes= Datebase
Size(总空间)—已分配空间(resrved)
现有数据量的大小,可以通过dba_segments表内的bytes字段,这个不是完全正确, 不过基本来说还比较靠谱。
这个数据量是以字节为单位的。如果要查条数,那么就真的没有什么办法了,但是如果你每天都分析表,那么还可以在统计信息的表内查到,如果不是每天统计,那么基本就没有办法了。
下面的脚本,可查出一个数据库内所有表的记录数CREATE TABLE #temp
(
TableName VARCHAR(255) ,
RowCnt INT
)
EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'
SELECT TableName ,
RowCnt
FROM#temp
ORDER BY TableName
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)