可用如下语句查看:
select round(BYTES/1024/1024,2)||'M' from user_segments where segment_name='表名';
注意:表名需要用英文大写。
select round(BYTES/1024/1024,2)||'M' from user_segments where segment_name='EMP';
查询结果:
查询结果代表EMP表所占空间大小为006M。
不是很懂你的问题意思,下次提问请描述的更清楚一些;
如果是想知道某一个表占用了多大空间,你可以用下面的语句
use yourDBgo
sp_spaceused yourTable
你会得到如下结果,各列分别是:
表名;行数;已占用空间;数据占用空间;索引占用空间;未使用空间;
如果你仅仅只是想知道某个列里面的值的数据长度,那就用datalength()函数就可以了
select DATALENGTH(a) DATALENGTH_a, from test1下面有两个SQL语句可以达到在SQL Server 2005/2008压缩指定数据库文件和日志的大小的效果:
1、DBCC SHRINKDATABASE (Transact-SQL)
收缩指定数据库中的数据文件和日志文件的大小。
语法
DBCC SHRINKDATABASE
( 'database_name' | database_id | 0
[ ,target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]
参数
'database_name' | database_id | 0 要收缩的数据库的名称或 ID。如果指定 0,则使用当前数据库。
target_percent 数据库收缩后的数据库文件中所需的剩余可用空间百分比。
NOTRUNCATE 通过将已分配的页从文件末尾移动到文件前面的未分配页来压缩数据文件中的数据。target_percent 是可选参数。 文件末尾的可用空间不会返回给 *** 作系统,文件的物理大小也不会更改。因此,指定 NOTRUNCATE 时,数据库看起来未收缩。 NOTRUNCATE 只适用于数据文件。日志文件不受影响。
TRUNCATEONLY 将文件末尾的所有可用空间释放给 *** 作系统,但不在文件内部执行任何页移动。数据文件只收缩到最近分配的区。如果与 TRUNCATEONLY 一起指定,将忽略 target_percent。 TRUNCATEONLY 只适用于数据文件。日志文件不受影响。
WITH NO_INFOMSGS 取消严重级别从 0 到 10 的所有信息性消息。
查看mysql数据库大小的四种办法,分别有以下四种:
第一种:进去指定schema 数据库(存放了其他的数据库的信息)
use information_schema
第二种:查询所有数据的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES(>
一.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)
要查的表名')
获取数据库表名和字段
sqlserver中各个系统表的作用
sysaltfiles 主数据库 保存数据库的文件
syscharsets 主数据库 字符集与排序顺序
sysconfigures 主数据库 配置选项
syscurconfigs 主数据库 当前配置选项
sysdatabases 主数据库 服务器中的数据库
syslanguages 主数据库 语言
syslogins 主数据库 登陆帐号信息
sysoledbusers 主数据库 链接服务器登陆信息
sysprocesses 主数据库 进程
sysremotelogins主数据库 远程登录帐号
syscolumns 每个数据库 列
sysconstrains 每个数据库 限制
sysfilegroups 每个数据库 文件组
sysfiles 每个数据库 文件
sysforeignkeys 每个数据库 外部关键字
sysindexs 每个数据库 索引
sysmenbers 每个数据库 角色成员
sysobjects 每个数据库 所有数据库对象
syspermissions 每个数据库 权限
systypes 每个数据库 用户定义数据类型
select 列名=name from syscolumns where id=object_id(N'表名'
--读取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype=' and name='u'u'--读取库中的所有表名
select name from sysobjects where xtype='
创建存储过程:
CREATE PROCEDURE [dbo][sys_viewTableSpace]
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE [dbo]#tableinfo(
表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
记录数 [int] NULL,
预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
使用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
索引占用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
未用空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL
)
insert into #tableinfo(表名, 记录数, 预留空间, 使用空间, 索引占用空间, 未用空间)
exec sp_MSforeachtable "exec sp_spaceused ''"
select from #tableinfo
order by 记录数 desc
drop table #tableinfo
END
使用的时候直接 :exec sys_viewtablespace
以上就是关于oracle中怎么查看表的大小全部的内容,包括:oracle中怎么查看表的大小、如何查询sqlserver数据库中数据的大小、如何查询sql2008 数据库大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)